Hi, Your PURGE request is getting a different hash than your browser requests because there is no Accept-Encoding header on the PURGE. (You see the same problem when using Vary on the response). See http://varnish-cache.org/wiki/Purging. You can either use << purge("req.url ~ " req.url); >> in vcl_recv, or send multiple PURGE requests with each of the relavant Accept-Encoding values.
Laurence On 11 February 2010 23:25, John Norman <j...@7fff.com> wrote: > Hi, folks. > > I'm trying to purge with the pseudo HTTP "PURGE" method Varnish supports. > > I do seem to have a cached page, but the PURGE response suggests that > it's missing. > > So . . . any idea why the PURGE isn't working? > > In my VCL, my vcl_hash looks like this (I intend it to only hash on > the request URL and compression): > > sub vcl_hash { > set req.hash += req.url; > > if (req.http.Accept-Encoding ~ "gzip") { > set req.hash += "gzip"; > } else if (req.http.Accept-Encoding ~ "deflate") { > set req.hash += "deflate"; > } > return (hash); > } > > And the checks for PURGE look like this (full VCL way below): > > sub vcl_hit { > if (req.request == "PURGE") { > set obj.ttl = 0s; > error 200 "Purged."; > } > if (!obj.cacheable) { > pass; > } > > deliver; > } > sub vcl_miss { > if (req.request == "PURGE") { > error 404 "Not in cache."; > } > } > > And in vcl_recv: > > if (req.request == "PURGE") { > lookup; > } _______________________________________________ varnish-misc mailing list varnish-misc@projects.linpro.no http://projects.linpro.no/mailman/listinfo/varnish-misc