我發佈了一個PHP腳本,最近很多人在共享主機帳戶的varnish緩存中遇到問題。如何從PHP腳本中禁用Varnish Cache?
這是PHP腳本頂部的代碼。但是,我仍然在響應頭文件中獲得「Varnish:HIT」(並且腳本無法正常工作)。
header('Pragma: no-cache');
header('Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate, proxy-revalidate');
header('Expires: Tue, 04 Sep 2012 05:32:29 GMT');
一個託管服務提供商表示,即使通過設置上面的緩存標頭,也不可能禁用PHP腳本中的清漆。這似乎..好吧..傻嗎?但似乎符合我的經驗。
那麼有沒有辦法在PHP中禁用/跳過清漆?或者varnish(默認)只是忽略PHP設置的這些緩存頭?
感謝斯 - 安德烈·科赫 - 我會包括與PHP腳本一起清漆指示,使其忽略無緩存響應:
sub vcl_fetch {
if (beresp.http.cache-control ~ "(no-cache|private)" ||
beresp.http.pragma ~ "no-cache") {
set beresp.ttl = 0s;
}
}
感謝的人,我會與腳本一起去的文件中包括這一點。 – dtbaker 2014-09-21 02:02:13