Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Varnish: Misc

Varnish and IPB

 

 

Varnish misc RSS feed   Index | Next | Previous | View Threaded


nfn at sapo

Aug 19, 2012, 3:17 AM

Post #1 of 1 (235 views)
Permalink
Varnish and IPB

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
varnish-misc [at] varnish-cache
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Varnish misc RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.