以前、キャッシュサーバの紹介しました。
キャッシュサーバ

最近では、オンメモリで処理できるVarnishが選ばれています。

Varnishの基本設定(1)
Varnishの基本設定(2)

そしてProxyサーバとしてデファクトスタンダードに使用されているsquidですが、基本インストールしたままでACLをちょこっと設定してサービス起動させただけと言うのが多いのが現状です。

ここでは、キャッシュのみに焦点を当てて・・・。

1.キャッシュをさせない
例えば、社内コンテンツでリアルタイムに情報の取得が必要なものに関してはキャッシュさせません。

# vi /etc/squid/squid.conf
acl NOCACHE url_regex ^http://www.hoge.com/calender/
no_cache deny NOCHACHE

2.画像は長く取る
画像のキャッシュ時間は長くとります。
[条件]
★拡張子の.gifがマッチしたら1440分(24時間)は保持する
★1440分(24時間)~10080(1週間)の間は、lm-factorを使ってファイルが新しいかどうかをサーバに見に行く。新しかったら更新する
★20%の意味は、そのファイルがいつできたか。1週間前の10080前にできた場合これを1440/10080=14.2%となってまだ新しいとみなす。

refresh_pattern -i \.gif$ 1440 20% 10080

これを応用(?)して

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i \.(gif|png|jpg|jpeg|ico)$ 10080 90% 43200 ignore-expire ignore-no-cache ignore-no-store ignore-private
refresh_pattern -i \.(iso|avi|wav|mp3|mp4|mpeg|swf|flv|x-flv)$ 43200 90% 432000 ignore-expire ignore-no-cache ignore-no-store ignore-private
refresh_pattern -i \.(deb|rpm|exe|zip|tar|tgz|ram|rar|bin|ppt|doc|tiff)$ 10080 90% 43200 ignore-expire ignore-no-cache ignore-no-store ignore-private
refresh_pattern -i \.index.(html|htm)$ 0 40% 10080
refresh_pattern -i \.(html|htm|css|js)$ 1440 40% 40320
refresh_pattern . 1440 40% 40320

ここで考えなければならないのが最後の

refresh_pattern . 1440 40% 40320

これは、上位から流れてきて、指定した拡張子以外のファイルはキャッシュ時間をどうするかである。