465
中電雲集
SQUID refresh_pattern詳解
refresh_pattern 大概是 squid 最有意思但最不好懂的配置參數了,經過看書,大概明白如何使用,寫出來貢獻。
記住refresh_pattern 隻對後端沒設置Expires過期時間的頁麵起作用,比如論壇頁麵;而對類似apache mod_expires 設置過的頁麵不起作用。
說明之前,先將個概念LM,LM就是頁麵Header裏時間(Date)和Last-Modified時間的差。Date一般是Squid從後麵取頁麵的時間,Last-Modified 一般是頁麵生成時間。
refresh_pattern 的語法是
refresh_pattern [-i] regexp min percent max [options]
regexp 就不講了,大家都明白的;)
min, max的單位是分鍾,percent就是百分比。
refresh_pattern 的算法如下:(當前時間定義為CURRENT_DATE)
1) If ((CURRENT_DATE-DATE(就是LM裏定義的時間)) < min),cache是新鮮的
2) else if ((CURRENT_DATE-DATE) < (min + (max-min)*percent),cache是新鮮的
3) else cache是過期的
cache過期就需要從後麵server取新鮮內容。
<img src=”https://blog.cnlinux.net/image/default/ad.gif”>
如果希望頁麵一進入cache就不刪除,直到被主動purge掉為止,可以加上ignore-reload選項
一般情況可以使用 reload-into-ims。
舉例:
refresh_pattern -i .gif$ 1440 50% 2880 ignore-reload
refresh_pattern -i .jpg$ 1440 50% 2880 ignore-reload
refresh_pattern -i .png$ 1440 50% 2880 ignore-reload
refresh_pattern -i .mp3$ 1440 50% 2880 ignore-reload
refresh_pattern -i .wmv$ 1440 50% 2880 ignore-reload
refresh_pattern -i .rm$ 1440 50% 2880 ignore-reload
refresh_pattern -i .swf$ 1440 50% 2880 ignore-reload
refresh_pattern -i .mpeg$ 1440 50% 2880 ignore-reload
refresh_pattern -i .wma$ 1440 50% 2880 ignore-reload
refresh_pattern -i .css$ 10 50% 60 reload-into-ims
refresh_pattern -i .js$ 10 50% 60 reload-into-ims
refresh_pattern -i .xml$ 10 50% 30 reload-into-ims
最後更新:2017-01-04 22:34:34