閱讀465 返回首頁    go 中電雲集


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

  上一篇:go 穩定的NTP時間同步服務器集群:ntp.api.bz
  下一篇:go squid命中率監控軟件squid-graph