我一直在使用清除工具即。鱿鱼客户端清除工具
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