我一直在使用清除工具即。魷魚客戶端清除工具
squidclient -m吹掃http://www.mysite.com/
上面的命令將清除,準確的鏈接,但它留下一切在它在緩存中。 (eghttp://www.mysite.com/page1)
我想知道是否有一種方法來清除該網址下的每個文件?
由於提前 露絲
我一直在使用清除工具即。魷魚客戶端清除工具
squidclient -m吹掃http://www.mysite.com/
上面的命令將清除,準確的鏈接,但它留下一切在它在緩存中。 (eghttp://www.mysite.com/page1)
我想知道是否有一種方法來清除該網址下的每個文件?
由於提前 露絲
首先感謝您對KimVais建議我問serverfault,我已經找到了解決辦法在那裏。
的回答serverfault:
的第三方清除工具將不正是你所追求的:
的purge工具是一種放大鏡到你的魷魚-2高速緩存。您可以使用清除來查看哪些URL存儲在緩存中的哪個文件中。清除工具也可用於釋放URL匹配用戶指定正則表達式的對象。一個更麻煩的功能是去除文件魷魚似乎不再知道的能力。
對於我們加速(反向)代理,我用這樣的配置:
淨化-c /etc/squid/squid.conf中-p本地主機:80 -P0 -se 'http://www.mysite.com/' -P0會顯示URL列表但不刪除它們;將其更改爲-P1以將PURGE發送到緩存,如同您在示例中所做的一樣。
我已經有限的成功,這條線搞亂:
awk '{print $7}' /var/log/squid/access.log | grep www.example.com | sort | uniq | xargs -n 1 squidclient -m PURGE -s
的net-purge gem增加的Net :: HTTP ::清除至紅寶石,所以你可以很容易地清除緩存。
require 'net-purge'
Net::HTTP.start('417east.com') {|http|
request = Net::HTTP::Purge.new('/')
response = http.request(request)
puts response.body # Guru Meditation
}
我們有很多方法來清除。例2點的方法,我送花兒給人使用:
隨着使用的MacOS或Linux客戶端:
curl -X PURGE http://URL.of.Site/ABC.txt
在服務器上直接被運行中的squid:
squidclient -m PURGE http://URL.of.Site/ABC.txt
當然,squid.conf中必須添加
acl Purge method PURGE
http_access allow localhost Purge
http_access allow localnet Purge
http_access deny Purge
我想補充一點,沒有O(1)在Squid緩存中使多個對象無效。詳情請參閱the Squid FAQ。
爲了便於比較,Nginx和Apache Traffic Server似乎也缺少這個功能。 OTOH,清漆實施banning,在實踐中應該做你想做的。
Apache Traffic Server v6.0.0增加了一個「緩存生成ID」,可以根據重映射規則設置。因此,您可以根本無需任何費用就可以有效地清除整個「網站」,除了使舊版本無法使用之外,它實際上不會做任何其他操作。
這對ATS緩存很有效,因爲它是一個循環緩存(我們稱之爲旋風緩存),對象從不會被主動刪除,只是「丟失」。
使用這個新選項是相當直接的,例如,
map http://example.com http://real.example.com \
@plugin=conf_remap.so \
proxy.config.http.cache.generation=1
即刻(零成本)吹掃example.com所有緩存的條目,只需凸點生成ID爲2,並重新加載配置以正常的方式。
我也應該說,編寫一個插件,從其他(外部)來源加載這些生成ID,而不是我們的remap.config,將會非常容易。
Ypu應該在serverfault.com上問這個問題或許 – Kimvais
謝謝我會嘗試 – Ruth