我看不到类似的问题,但是如果我正在复制,则表示歉意。如何在清漆中发送清除请求
我们在我们的系统上运行清漆缓存,但想要安装一个系统,我们可以在编辑它们时清除各个页面(相当普通)。我们一直试图通过使用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,但是,它似乎并没有工作。我在这里错过了一些非常基本的东西,或者是基础声音,这意味着我的实现被窃听?
非常感谢,
是的,PURGE是一个HTTP请求,就像GET或POST一样 - 尽管它过时了RFC 2616,但它被内容缓存和代理使用,如Squid,Varnish和Apache Traffic Server。快速谷歌的“PURGE curl_setopt”抛出了[这个例子](http://www.rwahyudi.com/linux/purge-squid-cache-using-curl-without-squidclient/)。享受:) – TerryE 2012-02-09 18:17:19
非常感谢你们俩!多谢! :) – flukeflume 2012-02-10 09:45:04
或者对于更多特设或脚本驱动的方法,您也可以使用'curl -XPURGE“http://your.varnish.cache/url-to-purge”' – 2015-06-10 19:21:45