[CGI] mod_expire モドキを作る

Posted by
ぴろり
Posted at
2008/09/28 16:29
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
開発メモ カテゴリ

 HTTP レスポンスにある "Expires" ヘッダを上手く活用することで、サーバへの HTTP 問合せを減らし、サイトの表示を高速化することができます。特にバナー画像やアイコンなど、頻繁に変更されることの無いファイルについては、Expires ヘッダの活用によって、サイト表示の高速化やサーバ負荷の軽減が期待できます。
 ところで、さくらインターネットのレンタルサーバ(スタンダードプラン)では、サーバに必要なモジュール(mod_expire)がインストールされておらずこの恩恵に預かれません。そこで、特定のディレクトリ以下にある画像ファイルについては、mod_rewrite と CGI を用いて Expires ヘッダを送出するようにしてみました。サーバを軽くする目的のために CGI を使うあたり、何か違うような気がしますが気にしないでおきましょう。

このエントリーをはてなブックマークに追加  

.htaccess の準備

 /site ディレクトリ以下にある画像ファイルについて、mod_rewrite モジュールを利用して処理を expires.cgi に任せるように指示を書き足します。

RewriteCond %{REQUEST_FILENAME} /site/.+.(jpe?g|gif|png)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.* /site/expires.cgi [PT,L]

expires.cgi

expires.cgi のダウンロード

 リクエストされたをファイルを開いて、その内容を返すだけの CGI スクリプトです。コンテンツの送出前に Expires ヘッダを追加しています。

効果のほどは?

 ページで使用しているバナー画像や背景画像などについて、サーバへの問合せを行わなくなるのでページ表示の体感速度がかなり向上しました。反対に初回は全ての画像ファイルの読み込みに対して CGI が動作するので幾分表示が遅くなります。リピータの多いサイトや 1 ビジタあたりの訪問ページ数が多いサイトではその効果が大きく期待できます。

このエントリーをはてなブックマークに追加  



関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。