我看不到類似的問題,但是如果我正在複製,則表示歉意。如何在清漆中發送清除請求
我們在我們的系統上運行清漆緩存,但想要安裝一個系統,我們可以在編輯它們時清除各個頁面(相當普通)。我們一直試圖通過使用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