【发布时间】:2014-01-08 09:11:55
【问题描述】:
我正在维护的一个 Wordpress 博客没有使用插件 Varnish HTTP Purge 清除缓存。无论是使用 Varnish Cache Purge 按钮还是在我们编辑帖子时。
为了知道问题的原因,我想知道一种方法来检查清除请求是否到达 Varnish 服务器,可能使用 varnishlog 命令。
【问题讨论】:
我正在维护的一个 Wordpress 博客没有使用插件 Varnish HTTP Purge 清除缓存。无论是使用 Varnish Cache Purge 按钮还是在我们编辑帖子时。
为了知道问题的原因,我想知道一种方法来检查清除请求是否到达 Varnish 服务器,可能使用 varnishlog 命令。
【问题讨论】:
它可以像清漆配置一样简单,将清除请求限制为某个 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。
【讨论】:
清漆 3.x
varnishlog -d -c -m RxRequest:PURGE
这将输出内存中的任何清除。如果没有-d,它将只输出当前请求:
varnishlog -c -m RxRequest:PURGE
来自man varnishlog:
-d 在启动时处理旧的日志条目。通常,varnishlog 只会处理启动后写入日志的条目。
【讨论】:
清漆 4.0
varnishlog -g request -q 'ReqMethod eq "PURGE"'
【讨论】: