mod_expiresでキャッシュの設定
WordPressの高速化の一環として、今回はApache2そのものに手を入れてみます。
今回目をつけたのは画像。
比較的ファイルサイズが大きく、読み込みの足を引っ張りがちな画像ファイルのキャッシュを設定して、表示速度の向上やパケットの節約を狙ってみます。
Apache2のパッケージに含まれている「mod_expires」というモジュールを有効化して設定することでファイルの形式ごとにキャッシュの有効時間を決めてやる事が可能になり、結果表示速度の向上に繋がるのだとか。
早速やってみましょう。
まずは必要なモジュールがインストールされているか調べてみます。コンソールで
dir /etc/apache2/mods-available/ | grep expires
と入力。
expires.loadという表示がされればOK!
続いて「a2enmod」コマンドを使ってこのモジュールを有効化します。
sudo a2enmod expires
/etc/init.d/apache2 restart
1行目がexpiresモジュールを有効化するコマンドで2行目でApache2を再起動して設定変更を反映させています。
続いて設定へ移りましょう。
.htaccessを使って設定する
WordPressのインストールディレクトりに置いてある.htaccessに以下を記述します。
ExpiresActive On
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 1 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType application/x-shockwave-flash "access plus 1 years"
ExpiresByType application/rss+xml "access plus 30 minutes"
ExpiresByType application/x-javascript "access plus 20 days"
ExpiresByType text/html "modification plus 15 minutes"
ExpiresByType text/css "access plus 20 days"
1行目でexpiresを有効化、以下でキャッシュを適用するファイルタイプとその有効期間について記述しています。
サイトのアクセス数や構成など様々な要因によって最適な値は変わってくるので、ある程度の期間を置きながら数値のメンテナンスを行う必要はありそうですが現状はこれで様子を見たいと思います。
.htaccessを使用するメリットは都度Apacheの再起動を行う必要がなく、設定を即時反映できることなので細かいメンテナンスにも適していると思われます。皆さんも一度お試し下さい。