印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
Linux ブラウザのキャッシュを活用するための Apache の設定

Google AdSense が提案してくる「ブラウザのキャッシュを活用する」に対応する。

■ ■ ■

Google AdSense のページには,「サイトの状況」という項目があり,いくつかのページのパフォーマンスの評価が表示されている。PageSpeed Insights にページの URL を入力すると調査して結果を表示してくれる。

試してみると,モバイル版のスコアは 65/100 (100点満点中65点),PC版のスコアは 80/100 であった。そしてスコアを上げるための提案も表示されていた。

修正が必要:
ブラウザのキャッシュを活用する
静的リソースの HTTP ヘッダー内で、有効期日や最大経過時間を設定すると、ブラウザがネットワークからではなくローカル ディスクから以前にダウンロードしたリソースを読み込むようになります。
次のキャッシュ可能なリソースでブラウザのキャッシュを活用してください:

http://nlogn.ath.cx/js/highslide/highslide.js(有効期限が指定されていません)
http://nlogn.ath.cx/mticons/hide-history.gif(有効期限が指定されていません)
http://nlogn.ath.cx/mticons/misc.gif(有効期限が指定されていません)
http://nlogn.ath.cx/mticons/normal.gif(有効期限が指定されていません)
http://nlogn.ath.cx/mticons/print.gif(有効期限が指定されていません)
http://nlogn.ath.cx/mticons/show-history.gif(有効期限が指定されていません)
http://nlogn.ath.cx/styles-hide-history.css(有効期限が指定されていません)
http://nlogn.ath.cx/styles-highslide.css(有効期限が指定されていません)
http://nlogn.ath.cx/styles-normal.css(有効期限が指定されていません)
http://nlogn.ath.cx/styles-site.css(有効期限が指定されていません)

ブラウザのキャッシュを活用する方法は,Leverage Browser Caching - PageSpeed Insights ― Google Developers に解説があって,ブラウザにローカルキャッシュさせるために HTML にキャッシュコントロール用のヘッダを追加することだとある。Expires または Cache-Control max-age のどちらかのヘッダと,Last-Modified または ETag のどちらかのヘッダを追加すればよいらしい。Expires と Cache-Control max-age の両方,Last-Modified と ETag の両方を指定するのは冗長だとある。

Apache の設定ファイルに Expires ディレクティブを追加するという解決方法が Google Adsense「ブラウザのキャッシュを活用する」のアラーム問題を解決する方法 pcmanabu に紹介されていた。サーバに複数のサイトがある場合,.htaccess を使えばサイト毎に個別に設定が可能である。

以下の設定の動作環境は Vine Linux 4.2,Apache 2.2.3。

このブログのサーバでは,複数のサイトを一括して設定してしまいたいので,Apache の conf に追加することにした。まず,/etc/apache2/modules に mod_expires.so モジュールがあることを確認して,/etc/apache2/conf.d ディレクトリに次の設定ファイルを追加する。ファイル名を例えば mod_expires.conf として (拡張子が .conf であればファイル名は何でもいい),次の内容を書いておく。

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 week"
ExpiresByType image/jpeg "access 1 week"
ExpiresByType image/gif "access 1 week"
ExpiresByType image/png "access 1 week"
ExpiresByType image/x-icon "access 1 week"
ExpiresByType text/css "access 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
</IfModule>

そして Apache を再起動すれば完了である。

再度評価してみたところ,モバイル版のスコアは 74/100,PC版のスコアは 90/100 となり,10ポイントアップした。簡単な割に効果的な方法である。

Posted by n at 2014-03-07 20:42 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?