GoogleにはPage Speedというプロジェクトがあって名前のとおりウェブサイトの表示高速化を手助けするツールが公開されている。
でその中にWebサーバ側でWebサイトの情報量を少なく返すことで高速化してくれるmod_pagespeedというapacheのモジュールが公開された。
http://code.google.com/intl/ja/speed/page-speed/docs/module.html
2010/11の時点では以下のようなサポートになっている。
upported platforms
CentOS/Fedora (32-bit and 64-bit)
Debian/Ubuntu (32-bit and 64-bit)
Apache 2.2
mod_pagespeedがやってくれるはcss/jsの縮小化や空白文字の削除などhtmlドキュメントを閲覧者に配信するまでに縮小化してくれる。これには設計的にfilterという概念が導入されていてそれぞれの縮小化のfilterを通して配信するという感じなのだろう。使えるフィルターには以下のようなものがある。
http://code.google.com/intl/ja/speed/page-speed/docs/filters.html
実際PRMからインストールしてつかってみた。最初の設定には如何のようになっていて
ModPagespeedFileCachePath “/var/www/mod_pagespeed/cache/”
ModPagespeedGeneratedFilePrefix “/var/www/mod_pagespeed/files/”
ここに縮小化したキャッシュをつくるものだと予想。一回目のアクセスは普通に返されて二回目のアクセスで縮小化される感じ。
自宅サーバで複数のドメインをVirtualhostで運用している方としてはそれぞれ別の設定にしたいんだけどFilterはVitualhostディレクティブでは動かなかった。Directoryディレクティブではいけるかもしれないがまだ試してない。
おそらくハイパフォーマンスWebサイトを読んだりしてパフォーマンスを気にしているような人はmod_pagespeedがやってくれることの多くはリリースエンジニリングの中で実施されていると思う。こういう場合は返ってmod_pagespeedがオーバーヘッドになるので本気でパフォーマンスを気にするならmod_pagespeedは使わないでリリースエンジニリングで頑張ったほうがよい気がする。一方でリリースエンジニリングでそれを頑張るのはめんどくさい、ちょっとした個人のサービスであったり会社のサイトであったりするなら使うのはありなんじゃないかと思った。