mod_deflateで圧縮転送
2007 年 7 月 11 日
コメントはありません
昔はmod_gzipというのもありましたが、現在のApache2.0,2.2はmod_deflateです。仕組みとしては、Webサーバがファイルを一旦圧縮して、ブラウザまで小さいサイズで転送し、ブラウザが解凍して表示するというものです。ブロードバンドなこのご時世にはあまり関係ないかもしれませんが、いまどき@FreedやAir-Hなどの細い線の場合や、テキスト中心で伝送量が多いようなサイトには効果はあるかもしれません。
CentOSで、画像ファイル以外をすべて圧縮対象にしちゃってもいいって場合は、
/etc/httpd/conf.d/deflate.conf とか作って、
ifmodule mod_deflate.c
location /
# Insert filter
SetOutputFilter DEFLATE
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
/location /
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
#CustomLog logs/deflate_log deflate
/ifmodule
などでOKです。バーチャルホストでやりたい場合は、その辺にいれてあげれば大丈夫かな?
Apache モジュール mod_deflate
最近のコメント