Hello,

I'm trying for some days to setup varnish with IPB (Invision Power Board) without success.

The relevant information is:

Cookie member_id: can have -1 (log out users); 0 (guests) and > 0 (members)
Cookies guestSkinChoice|language|mobileBrowser; don't want to cache when they are present.
Cookie session_id: php session id; Must be removed

So, in general, I can only cache when member_id is (0|-1) and no other cookies are present. By default, varnish should not cache anything ... I just want to cache url's started by:

"/"
""index.php"
"/topic"
"/forum"

Here is a vcl that is not working as expected and I don't know what is wrong. I using varnish 3.

Can someone give me some help?

Thanks

----------------------------------------------


sub vcl_recv {

  if (req.http.Cookie) {
    set req.http.Cookie = ";" + req.http.Cookie;
    set req.http.Cookie = regsuball(req.http.Cookie, "; +", ";");
set req.http.Cookie = regsuball(req.http.Cookie, ";(member_id|guestSkinChoice|language|mobileBrowser)=", "; \1=");
    set req.http.Cookie = regsuball(req.http.Cookie, ";[^ ][^;]*", "");
    set req.http.Cookie = regsuball(req.http.Cookie, "^[; ]+|[; ]+$", "");

    if (req.http.Cookie == "") {
      remove req.http.Cookie;
    }
  }

if ((req.http.Cookie ~ "member_id=" && req.http.Cookie !~ "member_id=(0|-1)") ||
    req.http.Cookie ~ "guestSkinChoice" ||
    req.http.Cookie ~ "language" ||
    req.http.Cookie ~ "mobileBrowser")
  {
    return(pass);
  }
}

sub vcl_fetch {

  if (beresp.http.set-cookie) {
    set beresp.http.set-cookie = ";" + beresp.http.set-cookie;
set beresp.http.set-cookie = regsuball(beresp.http.set-cookie, "; +", ";"); set beresp.http.set-cookie = regsuball(beresp.http.set-cookie, ";(member_id|guestSkinChoice|language|mobileBrowser)=", "; \1="); set beresp.http.set-cookie = regsuball(beresp.http.set-cookie, ";[^ ][^;]*", ""); set beresp.http.set-cookie = regsuball(beresp.http.set-cookie, "^[; ]+|[; ]+$", "");

    if (beresp.http.set-cookie == "") {
      remove beresp.http.set-cookie;
    }
  }

if ((beresp.http.set-cookie ~ "member_id=" && beresp.http.set-cookie !~ "member_id=(0|-1)") ||
    beresp.http.set-cookie ~ "guestSkinChoice" ||
    beresp.http.set-cookie ~ "language" ||
    beresp.http.set-cookie ~ "mobileBrowser")
  {
    set beresp.ttl = 0s;
  } else {
    set beresp.ttl = 120s;
  }

  ## == Index ==
  if ((req.url == "/" || req.url == "/index.php") && beresp.ttl > 0s)
  {
    unset beresp.http.set-cookie;
    set beresp.ttl = 10m;
  }

  ## == Topic ==
  if ((req.url ~ "^/topic/") && beresp.ttl > 0s)
  {
    unset beresp.http.set-cookie;
    set beresp.ttl = 30m;
  }

  ## == Forum ==
  if ((req.url ~ "^/forum/") && beresp.ttl > 0s)
  {
    unset beresp.http.set-cookie;
    set beresp.ttl = 60m;
  }
}


_______________________________________________
varnish-misc mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to