【squid】 2.4.STABLE2 設定の巻 その1
( ´D`)ノ< キャッシュを有効に使うためには、溜め込んでいるキャッシュがまだ新鮮
だから、取りに行く必要はないよ、と教えてあげる必要があるのれす。
それをコントロールするのがrefresh_patternなのれすが、この説明が
日本語のまともな文書がなかったので、理解するまで時間がかかったのれす。
だから、ここにそれを書き留めておくのれす。
デフォルトでは次のようになっているのれす。
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
2列目がプロトコル名を含むファイル名なのれす。上の例ではftpとgopher
以外は3行目に全て当てはまるのれす。
3列目から5列目がそれぞれmin、percent、maxになっているのれす。
それぞれが分、パーセント、分になっているのれす。
ここで与えた条件とage、lm-factor、expiresと比べて、キャッシュが新しいか
古くて、取りに行く必要があるか、判断しているのれす。
で下のが判断式なのれす。
FRESH if expires < now, else STALE
STALE if age > max
FRESH if lm-factor < percent, else STALE
FRESH if age < min
else STALE
ageとはファイルをキャッシュしてから現在までの時間で、lm_ageがサーバ上
での最終更新時刻からキャッシュするまでの時間とすると、ageをlm_ageで
割ったのがlm-factorになるのれす。
更新時 取得時 現在
|←lm_age→|←age→|
lm-factor=age/lm_age
squid】 2.4.STABLE2 設定の巻 その2
( ´D`)ノ< でまずageがmaxを越えていたら古いということで取りに行くのれす。
たとえばデフォルトの3行目ではキャッシュしてから4320分つまり3日以上
経ったファイルは無条件に取りに行くことになるのれす。
次にlm_factorとpercentが比べられるのれす。デフォルトでは20%なので
たとえば最終更新から1日経ってから取得したファイルであれば、その20%
つまり4.8時間過ぎたら古いと判断されるのれす。
この条件はmimやmaxのように決め打ちしていないので、頻繁に更新される
ニュースサイトと、あまり更新されないサイトとどちらでも有効な条件判断に
になるのれす。
最後にageとminを比べて、まだageがminで設定した時間に達していなければ
まだ新しいと判断されるのれす。しかし、デフォルトでは0となっているので
ここでは常に古いと判断されてしまうのれす。
最初のexpiresはサーバが返すファイルの有効期限が区切ってある場合
の設定なのれす。期限切れだと古いと判断されるのれす。
つまりキャッシュのヒット率を増やしたければ、minの値を大きく、percentも
大きくして、maxもなるべく大きくするようにすればいいのれす。
この他にオプションが4つあるのれす。
override-expireは有効期限の条件判断を強制的にminの判断にしてしまう。
override-lastmodは最終更新の判断を強制的にminの判断にしてしまう。
reload-into-imsはno-cacheとreloadの命令をIf-Modified-Sinceの
リクエストに変えてしまうもの。つまり無いのに、あるかのように装って差分だけ
送れと言うわけなのれす。
ignore-reloadはno-cacheやreloadの命令そのものを無視しちゃうもの
なのれす、たぶん。間違ってたら訂正してちょ。
このオプションはHTTP/1.1に違反しているそうなのれすが、逆に強制的に
何度も再読み込みさせるwebサイトの作者の商売気をそぐには有効かもれす。
ロゴとか画像とかは更新されないことも多いので、これらのファイルはキャッシュ
として長く保ったほうがHIT率は高くなるのれす。
【squid】 2.4.STABLE2 設定の巻 その3
( ´D`)ノ< でこんな風にしてみたのれす。
refresh_pattern -i \.gif$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.jpg$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.jpeg$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.png$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.mpg$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.mpeg$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.avi$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.wav$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.ram$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.rm$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.bmp$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.pdf$ 10080 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.html$ 10 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.htm$ 10 100% 14400
override-expire reload-into-ims
refresh_pattern -i \.shtml$ 10 100% 14400
override-expire reload-into-ims
refresh_pattern . 10080 100% 14400
override-expire reload-into-ims
【squid】 2.4.STABLE2 設定の巻 その4
( ´D`)ノ< またrefresh_patternとは別にキャッシュをいつまで保存するかを決める
設定があるのれす。これを過ぎると削除されるのれす。
デフォルトでは1年なのれすが、100MBしか領域が確保していないので
とても1年は持たないのれす。とりあえず10日としたのれす。
reference_age 10 days
( ´D`)ノ<
>>180で書いたアクセスコントロールは
acl 2ch dstdomain 2ch.net
で、.2ch.netは要らなかったようなのれす。
# squid -k rotate
したら要らないと怒られたのれす。
妙に親切だったのれす。(笑)
( ´D`)ノ<
>>184で書いたオプションはrefresh_patternと同行に収める
必要があるのれす。
こんな風に。
refresh_pattern . 10080 100% 14400 override-expire reload-into-ims
まあ、誰もツッコミがないので、影響もないと思われ…なのれす。
【sylpheed】 0.6.2
( ´D`)ノ< sylpheedが新しくなっていたのでUPするのれす。
アドレス張のアイコンがアイコンとは気づかず文字化けかと
思ったのれす。
( ´D`)ノ< やっとhannah.ipc,miyakyo-u.ac.jp復旧なのれす。
復旧ごくろうさまなのれす>作者の方
それにしても、ftpで繋ごうとすると
「HDDがクラッシュして復旧中だよ〜ん」って
ちゃんとメッセージを出すftpサーバって初めて見たのれす。
利用者への心遣い、見習いたいものなのれす。