Purging on form submit

Nuno Neves nfn at gmx.com
Wed Jul 6 13:52:26 CEST 2011


Hello,

 I managed to add an new header:

 x-url: /topic/123-my-topic/

 So I just need to add this bit?

 sub vcl_fetch {
 if (req.request == "POST" && beresp.http.x-url) {
 purge("obj.http.host == example.com && req.url ~ " beresp.http.x-url);
 }
 }

 Note that I need to purge /topic/123-my-topic/ and /topic/123-my-topic/all pages after slash.
 In this case can I use purge("obj.http.host == example.com && req.url ~ " beresp.http.x-url.*$);?

 Thanks

----- Original Message -----
From: Rob S
Sent: 07/06/11 11:25 AM
To: varnish-misc at varnish-cache.org
Subject: Re: Purging on form submit

 On 06/07/2011 10:26, Nuno Neves wrote: 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.*$
 }
}
 Nuno:

 Varnish can't see the body of the response. However, if you're able to change the response, you can just add an HTTP header with this information. Then, in vcl_fetch (which is where the HTTP request is sent to the backend), you can probably add something like:

 sub vcl_fetch {
 if (beresp.http.x-purgepattern) {
 purge("obj.http.host == example.com && req.url ~ " beresp.http.x-purgepattern);
 }
 }


 Rob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20110706/dea03925/attachment-0003.html>


More information about the varnish-misc mailing list