ログ設定を直した結果とmod_expiresの設定
2007年11月14日 プログラミングTIPS
「今すぐApacheログ設定の見直しを!」で、今まで間違っていた正規表現を直した結果、その後のログはこのようになりました。
多分、今度こそ正しいログになったはずです。
それから、htttpd.confにApacheモジュールのmod_expiresの設定も追加してみました。
今回の設定は上記のように、適当に設定してみました。(前回みたいに、正規表現は間違えていないはずです。どこかおかしいところがあったら教えてください)
修正前 | → | 修正後 | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
→ |
|
それから、htttpd.confにApacheモジュールのmod_expiresの設定も追加してみました。
ExpiresActiveを「On」にすることで、指定したファイルに有効期限が設定され、クライアント側でキャッシュが効くようになります。あまり変更のないファイルに有効期限を設定すれば、サーバーの負荷と転送量が下がり、クライアント側でもレスポンスが良くなります。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>
今回の設定は上記のように、適当に設定してみました。(前回みたいに、正規表現は間違えていないはずです。どこかおかしいところがあったら教えてください)
ただ、有効期限を設定してしまうと、いろいろ不具合が起きることがあります。
例えばCSSを変更した場合、CSS変更後にキャッシュされたままでは、表示がおかしくなってしまう可能性があります。
そこで、以下のような対処方法が考えられます。
- 1. CSSの名前自体変える
- 日付を入れて「071114.css」とかにする。CSSファイルが増えていく上に、メインのHTML側も変更しなければいけなくて、いちいち面倒。
- 2. ?でパラメータを付ける
- 「***.css?d=071114」とかのパラメータを付ける。これだと、普段キャッシュしてもらえるのかどうか。
- 3. mod_rewriteを使う
- 設定が面倒。よけいな負荷もかかる。
- 4. キャッシュが切れるまで、ただ待つ
- HTML構造自体変えたときは表示がおかしくなる。
普段からキャッシュ時間を短くしておいて、大幅な変更がなければ、時間切れを待つというのが一番簡単そうです。