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