Apache2 表示が遅いのでコンテンツの圧縮転送を設定した
- 2009.02.16
- Webマスター
「イントラネットの表示が遅くて、仕事の効率下がりますぅ」と言われた。
確かに遅い。理由は簡単。「だって、海外(アメリカ)にサーバがあるんだもーん。数Mbpsしか帯域が無いし、その帯域のほとんどがSAPなどの重要アプリに割り当てられているので、イントラネット用に使えるのは極少帯域なんですー。 」と言い訳を言っても解決しない。
そういえば昔、2ちゃんねるが帯域を食いまくって運用停止を迫られたとき、圧縮転送を使って問題解決した、というようなストーリーを読んだ覚えがあるので調べてみた。Apache1.3系ではmod_gzip、Apache2系はmod_deflateを使えばよいことが分かった。
■Apache2のhttpd.confでmod_deflateを設定する
/etc/apache2/httpd.confを開いて、バーチャルホスト設定の手前の適当な場所にmod_deflateの設定を入れた。
<IfModule mod_deflate.c>
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/xml
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpg|jpeg|png)$ no-gzip dont-vary
</IfModule>
バーチャルホストの設定内で、設定を加えた。
<VirtualHost 10.2.126.93:80>
ServerName intranet.mycompany.com
ServerAdmin webmaster@mycompany.com
DocumentRoot /export/home/www/public_html
ScriptAlias /cgi-bin/ /export/home/www/cgi-bin/
ErrorLog /export/home/www/logs/error_log
ScriptLog /export/home/www/logs/script_log
CustomLog /export/home/www/logs/access_log common
# 圧縮転送を有効にする。
<IfModule mod_deflate.c>
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
# 下のふたつは、圧縮転送されているかを確認後、コメントアウトしておく。
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%) %{User-agent}i' deflate
CustomLog /export/home/www/logs/deflate_log deflate
</IfModule>
</VirtualHost>
参考ページ
[Debian][Apache] Apache2でコンテンツの圧縮転送
-
前の記事
Solaris Hyper Estraierのestwaver crawlコマンドでcould not openエラー 2009.02.16
-
次の記事
BASHプログラミング参考サイト 2009.02.16