2006年11月11日土曜日

apache2にmod_deflateを導入


mod_deflateを導入しました。
概要や導入方法は下記が参考になります。
http://www.atmarkit.co.jp/flinux/rensai/apache2_04/apache04a.html



上記ページの通りにapacheを再コンパイル、インストール。設定をして再起動。。。



IEからアクセスしてみると、体感で少し速くなってる気がします。
そしてdeflateのログを見ても圧縮されてる様子。
また、



http://www.port80software.com/support/p80tools



↑で調べてみても「is gziped.」と出ます。う~ん、意外とスンナリ導入できたなぁ。



、、、と思ったんですが、困ったことにhtmlの圧縮はされてるけれど、cssやrdf、xmlが圧縮されていません。
cssやrdf、xmlって意外とアクセスが多いので、これはぜひとも圧縮したいところ。というわけで設定を見直します。



httpd.confをいじっては試し、いじっては試し、、、で動作を確認していくと、@ITに書いてある設定方法がおかしいことがわかりました。



http://d.hatena.ne.jp/kudzu/20060720/1153412166



↑こちらのページでも指摘していますが、「SetEnv gzip-only-text/html 1」があると、「AddOutputFilterByType」で個別に圧縮対象のContent-Typeを指定してもすべてかき消され、text/htmlだけしか圧縮されなくなるようです。




いろいろ試してみましたが、正解はここに書いてある通り。
http://cvs.apache.jp/svn/httpd-docs/2.0/manual/mod/mod_deflate.xml.ja



「せっかちな人向けの簡単な設定例」をそのまんま使えばOKです。
最終的にこんな感じにしました。



<IfModule mod_deflate.c>
DeflateCompressionLevel 5
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rdf+xml

#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%) %{User-agent}i' deflate
#CustomLog logs/deflate_log deflate
</IfModule>



これでcssやjs、rdf、xmlなども圧縮されて転送されるようになりました。モチロン、gifやjpgなどの画像は圧縮されません。
あと、ブラウザごとに細かく設定しようかとも思いましたが、面倒なのでやめました(^-^A



mod_deflate、とりあえず今のところは軽快に動いているようです。手軽に導入できて回線リソースの節約になるので、時間のある人は試してみるといいかもしれません。

0 件のコメント:

コメントを投稿