2010-01-29 59 views
4

我一直在使用清除工具即。魷魚客戶端清除工具

squidclient -m吹掃http://www.mysite.com/

上面的命令將清除,準確的鏈接,但它留下一切在它在緩存中。 (eghttp://www.mysite.com/page1)

我想知道是否有一種方法來清除該網址下的每個文件?

由於提前 露絲

+0

Ypu應該在serverfault.com上問這個問題或許 – Kimvais

+0

謝謝我會嘗試 – Ruth

回答

2

首先感謝您對KimVais建議我問serverfault,我已經找到了解決辦法在那裏。

的回答serverfault:

的第三方清除工具將不正是你所追求的:

purge工具是一種放大鏡到你的魷魚-2高速緩存。您可以使用清除來查看哪些URL存儲在緩存中的哪個文件中。清除工具也可用於釋放URL匹配用戶指定正則表達式的對象。一個更麻煩的功能是去除文件魷魚似乎不再知道的能力。

對於我們加速(反向)代理,我用這樣的配置:

淨化-c /etc/squid/squid.conf中-p本地主機:80 -P0 -se 'http://www.mysite.com/' -P0會顯示URL列表但不刪除它們;將其更改爲-P1以將PURGE發送到緩存,如同您在示例中所做的一樣。

2

我已經有限的成功,這條線搞亂:

awk '{print $7}' /var/log/squid/access.log | grep www.example.com | sort | uniq | xargs -n 1 squidclient -m PURGE -s 
2

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 
} 
0

我們有很多方法來清除。例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
0

我想補充一點,沒有O(1)在Squid緩存中使多個對象無效。詳情請參閱the Squid FAQ

爲了便於比較,Nginx和Apache Traffic Server似乎也缺少這個功能。 OTOH,清漆實施banning,在實踐中應該做你想做的。

0

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,將會非常容易。