Purge based on url postfix

Lars Jørgensen ljorg6 at gmail.com
Wed Dec 28 15:12:45 CET 2011


We're having trouble getting our heavily customized backend to purge 
changed pages automatically from Varnish.

As a workaround, I would like to enable CMS editors to call content with 
a postfixed string to purge it. Like this: www.website.com/index.html$PURGE

That should purge index.html from the cache.

I'm stumped on how to extract the original url from that request, 
though. I got this far:

sub vcl_recv {
   if (req.url ~ "\$PURGE$") {
     $original_url = some magic code to strip "$PURGE" from req.url
     set req.x-purge = 1;
     set req.url = $original_url;

sub vcl_hit {
   if (req.x-purge == 1) {
     error 200 "Purged";

sub vcl_miss {
   if (req.x-purge == 1) {
     error 404 "Page not in cache";

Is this the right way to go about it, and can somebody supply the rather 
essential missing piece?


More information about the varnish-misc mailing list