我提供维护的Wordpress博客之一并不是使用插件 Varnish HTTP Purge 来清除缓存。是否使用Varnish Cache Purge按钮或编辑帖子时。
为了知道问题的原因,我想知道一种检查清除请求是否到达Varnish服务器的方法,也许是使用varnishlog命令。
答案 0 :(得分:16)
Varnish 4.0
varnishlog -g request -q 'ReqMethod eq "PURGE"'
答案 1 :(得分:6)
Varnish 3.x
varnishlog -d -c -m RxRequest:PURGE
这将输出内存中的任何清除。如果没有-d
,它将仅输出当前请求:
varnishlog -c -m RxRequest:PURGE
来自man varnishlog
:
-d
在启动时处理旧日志条目。通常,varnishlog只会处理在启动后写入日志的条目。
答案 2 :(得分:0)
它可以像清漆配置一样简单,将清除请求限制为某个IP或一组IP。我知道我的典型清漆配置包括:
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。