调试Varnish HTTP清除缓存

9
我正在维护的WordPress博客之一无法使用插件Varnish HTTP Purge清除缓存。不管是使用Varnish Cache Purge按钮还是在编辑文章时操作,都无法清除缓存。
为了找出问题的原因,我想知道如何检查清除请求是否到达Varnish服务器,也许可以使用varnishlog命令。 http://wordpress.org/plugins/varnish-http-purge/
3个回答

21
Varnish 4.0
varnishlog -g request -q 'ReqMethod eq "PURGE"'

6

Varnish 3.x

varnishlog -d -c -m RxRequest:PURGE

这将输出内存中的所有缓存清除。如果没有使用 -d,则只会输出当前请求:

varnishlog -c -m RxRequest:PURGE

来自varnishlog手册:

-d 启动时处理旧的日志条目。通常情况下,varnishlog仅会处理启动后写入日志的条目。


0

这可能只是varnish配置限制了对某个IP或一组IP的清除请求。我知道我的典型varnish配置包括:

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);
  }

  ....
}   

我会先检查一下,特别是配置是否从varnish网站的一些示例中复制而来。几乎所有示例都包括一个用于清除缓存的ACL。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接