Purging on form submit
Nuno Neves
nfn at gmx.com
Wed Jul 6 11:26:49 CEST 2011
Hello,
I'm running a forum that has a ttl to expire content to guests only, but I would like to opitmize it to purge a page when we have new posts or after 24h (to update counters).
My 1st question is how can I get the hiden input value I have that tell varnish that we have a new post?
<input type="hidden" name="canpurge" value="/topic/123-my-topic/" />
I was thinking of something like this:
sub vcl_recv {
if (req.request == "POST" && FORM.FIELD == "canpurge) {
purge req.http.host == example.com && req.url ~ ^FORM.CANPURGE.VALUE.*$
}
}
This is an excertt of my actual configuration:
====================================================================================================
sub vcl_recv {
## == Mobile ==
if (req.http.User-Agent ~ "(iPad|iPhone|iPod|Android|SymbianOS|^BlackBerry|^SonyEricsson|^Nokia|^SAMSUNG|^LG)") {
return(pass);
}
if (!((req.http.Cookie ~ "member_id=" && req.http.Cookie !~ "member_id=(0|-1)") || req.http.Cookie ~ "(guestSkinChoice|language)")) {
if (req.url ~ "^/(public|forum|topic|gallery|blogs|members|user|calendar)/") {
unset req.http.cookie;
set req.grace = 15s;
}
if (req.url == "/" || req.url == "/index.php") {
unset req.http.cookie;
set req.grace = 15s;
}
}
}
sub vcl_fetch {
if (!((req.http.Cookie ~ "member_id=" && req.http.Cookie !~ "member_id=(0|-1)") || req.http.Cookie ~ "(guestSkinChoice|language)")) {
## == INDEX ==
if (req.url == "/" || req.url == "/index.php") {
unset beresp.http.set-cookie;
set beresp.ttl = 300s;
set beresp.grace = 30s;
}
## == ESI ==
if (req.url ~ "^/(gallery/image|topic)/") {
set beresp.do_esi = true;
unset beresp.http.set-cookie;
set beresp.ttl = 300s;
set beresp.grace = 30s;
## Others
} elseif (req.url ~ "^/(public|forum|gallery|blogs|members|user|calendar)/") {
unset beresp.http.set-cookie;
set beresp.ttl = 600s;
set beresp.grace = 30s;
}
}
}
====================================================================================================
Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20110706/4aece38d/attachment-0003.html>
More information about the varnish-misc
mailing list