如果我重复了之前的问题,请见谅,我没有找到类似的问题。
我们在系统上运行Varnish缓存,但希望安装一个系统,当编辑页面时可以清除单个页面(相当普遍)。我们一直在尝试通过使用HTTP头让它工作。因此,我们的 VCL 设置如下:
acl purge {
"localhost";
#### Our server IP #####
}
sub vcl_recv {
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
return (lookup);
}
}
sub vcl_hit {
if (req.request == "PURGE") {
purge;
}
}
sub vcl_miss {
if (req.request == "PURGE") {
purge;
}
}
然而,我不知道如何发送http清除请求。我们的网站是使用PHP编写的,因此我尝试使用以下代码:
header("PL: PURGE / HTTP/1.0");
header("Host: url to purge");
但是这似乎没有起作用(而且varnishlog似乎也没有显示任何“清除”操作)。
我也尝试使用cURL进行实验,但同样没有起作用。 我错过了一些非常基本的东西吗,还是基础部分可靠,意思是我的实现有错误?
非常感谢。
curl -XPURGE "http://your.varnish.cache/url-to-purge"
。 - Cameron Kerr