サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)
今回はブログサイトの表示速度を上げるためにmod_expiresを試してみます。
photo credit: Álvaro Reig González via photopin cc
mod_expiresとは
Apacheのモジュール、mod_expiresを利用してキャッシュを利用し、転送量を軽減させて負荷対策します。キャッシュを利用すると負荷対策ばかりか、体感速度も向上します。
引用文にあるようにクライアント側で画像などのファイルをキャッシュ(一時的に保存)させます。そうすると、サーバ側は画像ファイルなどすべてのファイルをクライアントに送り出す必要が無いのでその分負荷が下がりますし、クライアント側もローカルに存在しているファイルを読み込むだけでいいので表示速度も上がります。
まずは設定前のサイトの評価を確認しておく
よく利用しているhttp://tools.pingdom.com/fptで設定前の評価を計測しておきます。
ページを開いて入力欄に計測するサイトのURLを入力して「Test Now」を実行します。
しばらくすると計測結果が表示されます。
Perf.gradeの数値が79/100となりました。
この結果を基準にして、mod_expiresの設定に進めていきます。
mod_expiresを設定する
まずは、mod_expiresのモジュールが設定されているかを確認します。
# less /etc/httpd/conf/httpd.conf (だいだい171行目付近に、以下の行がコメントアウトされずにいることを確認します。) LoadModule expires_module modules/mod_expires.so
モジュールが設定されていれば以下の内容を追記します。
だいたい377行目付近がいいと思いますが、環境に合わせて追記をしてください。
以下の内容ではキャッシュの有効期限は12時間に設定しています。
ExpiresActive on ExpiresByType image/png "access plus 12 hours" ExpiresByType image/jpeg "access plus 12 hours" ExpiresByType image/gif "access plus 12 hours" ExpiresByType text/css "access plus 12 hours" ExpiresByType text/javascript "access plus 12 hours" ExpiresByType application/x-javascript "access plus 12 hours" ExpiresByType application/x-shockwave-flash "access 12 hours" ExpiresDefault "access plus 1 days"
設定をすればApacheの再起動をします。
# /etc/init.d/httd restart
設定後の再計測をする
再びhttp://tools.pingdom.com/fptを開いてサイトのURLを入力をしてTest Nowを実行します。
結果は、Perf.gradeの数値が79/100からPerf.gradeの数値が80/100の微増でした。。。
でも、数値的には微増でしたが、実際に何度がブラウザで表示をしてみると体感的には早くなったと感じています。
※mod_expiresの注意点としてはサイトのファイルを更新した時にクライアント側で更新されないことも十分に予想れるので、キャッシュの有効期限には注意が必要です。
Pingback:「mod_expires」と「. htaccess」のキャッシュ機能はどちらが速いか?! | ZIBUNLOG