2011年12月9日金曜日

Webページ高速化のためにやっとくapacheの設定

最近忘れがちなので備忘録として。設定するのはYSlowの項目でいう、「Add Expires headers」、「Compress components with gzip」、「Configure entity tags (ETags)」。

Add Expires headers

Expiresヘッダを追加し有効期限設定してやる。
mod_expires

Compress components with gzip

データを圧縮して転送量を下げる。
mod_deflate

Configure entity tags (ETags)

正しく設定してキャッシュが正しく使われるようにする。
FileETag ディレクティブ

Etagについては正しく理解できていないのでメモ程度に。
・Etagはキャッシュの管理で使われる。(Etagをレスポンスに含めると、次回のリクエストではIf-None-Match:がヘッダに含められ、Etagが異なればキャッシュが使われずにデータが変えされる。)
・Etagを求める計算にinode番号を使用するので、複数台で負荷分散してるサイトだとEtagが一致しなくなってキャッシュが使われないってことだと思う。
・Etagを返さないように設定すると、YSlowの評価はFからAになるけど、実際の挙動としては、キャッシュが使われるか使われないかは、動作見た感じだとこの設定では変わってないような気がする。