ZAPAnet総合情報局 > ZAPAブログ2.0 > ログ設定を直した結果とmod_expiresの設定

ログ設定を直した結果とmod_expiresの設定

2007年11月14日 プログラミングTIPS
今すぐApacheログ設定の見直しを!」で、今まで間違っていた正規表現を直した結果、その後のログはこのようになりました。
修正前  →  修正後
日付 ヒット数
10/27 642140
10/28 593685
10/29 416319
10/30 409333
10/31 398754
11/01 413443
11/02 444468
 → 
日付 ヒット数
11/03 700424
11/04 745363
11/05 598184
11/06 622451
11/07 553539
11/08 525131
11/09 528656
多分、今度こそ正しいログになったはずです。

それから、htttpd.confにApacheモジュールのmod_expiresの設定も追加してみました。
LoadModule expires_module modules/mod_expires.so

ExpiresActive On

<FilesMatch "\.(css|js)$">
    ExpiresDefault "access plus 24 hours"
</FilesMatch>
<FilesMatch "\.(gif|jpe?g|png|pdf|swf)$">
    ExpiresDefault "access plus 3 days"
</FilesMatch>
<FilesMatch "\.(ico|ICO)$">
    ExpiresDefault "access plus 7 days"
</FilesMatch>
ExpiresActiveを「On」にすることで、指定したファイルに有効期限が設定され、クライアント側でキャッシュが効くようになります。あまり変更のないファイルに有効期限を設定すれば、サーバーの負荷と転送量が下がり、クライアント側でもレスポンスが良くなります。
今回の設定は上記のように、適当に設定してみました。(前回みたいに、正規表現は間違えていないはずです。どこかおかしいところがあったら教えてください)

ただ、有効期限を設定してしまうと、いろいろ不具合が起きることがあります。
例えばCSSを変更した場合、CSS変更後にキャッシュされたままでは、表示がおかしくなってしまう可能性があります。
そこで、以下のような対処方法が考えられます。
1. CSSの名前自体変える
日付を入れて「071114.css」とかにする。CSSファイルが増えていく上に、メインのHTML側も変更しなければいけなくて、いちいち面倒。
2. ?でパラメータを付ける
「***.css?d=071114」とかのパラメータを付ける。これだと、普段キャッシュしてもらえるのかどうか。
3. mod_rewriteを使う
設定が面倒。よけいな負荷もかかる。
4. キャッシュが切れるまで、ただ待つ
HTML構造自体変えたときは表示がおかしくなる。
一番確実なのは、CSSの名前自体変えてしまうことだと思いますが、いろいろ面倒です。
普段からキャッシュ時間を短くしておいて、大幅な変更がなければ、時間切れを待つというのが一番簡単そうです。