mod_deflate

mod_deflate - Apache HTTP サーバを見ながら遊んでみる。

概要

まず、「mod_deflate」モジュールの概要は、以下のとおり。

mod_deflateモジュールを導入すると、コンテンツの転送量が減少するためネットワークへの負荷が低減できます。一方、デフォルトの設定では転送する全コンテンツに圧縮処理を行うため、CPU消費率が高くなります。 (snip) また、クライアントのWebブラウザによっては圧縮コンテンツを処理できず文字化けを起こすなどの不具合が発生することもあります。

実用 Apache 2.0運用・管理術(4):mod_deflateによるコンテンツの圧縮転送 (1/3) - @IT

導入判断、導入後の設定は、ネットワーク負荷とCPU負荷を天秤にかけて決定する必要がありそうです。他にもブラウザが対応しているかなど考慮すべきことがあるようですが、今回は知識の蓄えを目的に、index.htmlをgzip形式で圧縮転送します。

設定

mod_includeモジュールの有効化

# a2enmod
Which module would you like to enable?
Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dav_svn dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter headers ident imagemap include info ldap log_forensic mem_cache mime mime_magic negotiation php5 proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http rewrite setenvif speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias
Module name? deflate
Module deflate installed; run /etc/init.d/apache2 force-reload to enable.

apacheを再起動

# /etc/init.d/apache2 restart
 * Restarting web server apache2
[ OK ]

mod_deflateモジュールが有効であることを確認

# /usr/sbin/apache2ctl -M
Loaded Modules:
(snip)
 deflate_module (shared)
(snip)
Syntax OK

設定ファイルの編集(いじったら、apacheの再起動を忘れないこと)

# vi /etc/apache2/mods-available/deflate.conf 
      1 <IfModule mod_deflate.c>
      2 
      3     # 1〜9の値で圧縮率の設定(数字が大きくなると圧縮率が大きくなる)
      4     DeflateCompressionLevel 6
      5 
      6     AddOutputFilterByType DEFLATE text/html text/plain text/xml
      7 
      8     <Location />
      9         # DEFLATEの有効化
     10         SetOutputFilter DEFLATE
     11 
     12         # Netscape 4.0X の場合は圧縮しない
     13         BrowserMatch ^Mozilla/4\.0[678] no-gzip
     14 
     15         # Netscape 4.X以上 / Firefox / MSIEでは圧縮(htmlテキストのみ)
     16         BrowserMatch ^Mozilla/4 gzip-only-text/html
     17         BrowserMatch ^Mozilla/5 gzip-only-text/html
     18 
     19         # 拡張子による制限(gif/jpg/png は圧縮しない)
     20         SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
     21 
     22     </Location>
     23 </IfModule>

確認