Squid2.X緩存含Vary頭信息內容的相關問題

網上有朋友遇到Squid關於Vary頭緩存問題,查了下以前的筆記:

一、現象

如需要緩存Vary頭信息的Object,同一個URL,Squid會根據 Vary頭定義的Request頭信息 來緩存多份,而在做緩存刷新的時候,這些多的Object會刪不乾淨(算是Bug)


關於Squid 的Vary緩存原理解釋在這兒: http://blog.sina.com.cn/s/blog_68d83f050100m3x1.html

二、解決辦法

1 目前 可以通過修改Squid源碼來達到目的
已經有人在Squid2.6下測試成功: http://windtear.net/2008/07/squid_patch_accept-encoding_multi_cache.html 


我測試過Sina的相關 緩存,無論在請求頭中怎麼修改,得到的緩存都一樣
比如: 
curl  -H "Accept-Encoding: gzip,deflate"  ;  
curl  -H "Accept-Encoding: deflate,gzip"  ;
curl  -H "Accept-Encoding: deflate , gzip"  ;


2 有同事(在淘寶的) 提供了一個方法:cur -X PURGE -H "Accept-Encoding: gzip,deflate" http://xxxx/yyyy.jpg 可以刪掉
但這不是完美的方案 。理論上"Accept-Encoding" 的Value 可以有很多(所以纔會有多份緩存),Squid還是應該提供完全的解決方案

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章