One of the Wordpress blogs I'm giving maintenance is not purging the cache using the plugin Varnish HTTP Purge. Whether using Varnish Cache Purge button or when we edit a post.

In order to know the cause of the problem, I would like to know a way to check if the purge request is reaching the Varnish server, maybe using varnishlog command.

http://wordpress.org/plugins/varnish-http-purge/

有帮助吗?

解决方案

Varnish 4.0

varnishlog -g request -q 'ReqMethod eq "PURGE"'

其他提示

Varnish 3.x

varnishlog -d -c -m RxRequest:PURGE

That will output any of the purges in memory. And without -d it will output only current requests:

varnishlog -c -m RxRequest:PURGE

From man varnishlog:

-d Process old log entries on startup. Normally, varnishlog will only process entries which are written to the log after it starts.

It could be as simple as the varnish config limiting purge requests to a certain IP, or set of IPs. I know that my typical varnish configs include:

acl purge {
  "127.0.0.1";
  "123.45.67.0"/24;
}

sub vcl_recv {
  ....

  if (req.request == "PURGE") {
    if (!client.ip ~ purge) {
      error 405 "Not allowed.";
    }   
    return (lookup);
  }

  ....
}   

I would check that first, especially the config was copied off some examples off the varnish website. Almost all of them include an ACL for purge.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top