mod_gzip を使うと、web サーバからクライアントへのファイルの送信が高速化されて嬉しかったりする。
Apache に mod_gzip を組み込むときの覚え書きです。
Web Server | Apache 1.3.26 |
---|---|
mod_gzip | 1.3.19.1a |
OS | VineLinux 2.5 |
まずは HSC's mod_gzip for the Apache Web Server から最新版のソースを入手します。Complete source code as a 'C' code download をダウンロードしました。現時点での最新版は 1.3.19.1a です。
root になってインストールします。
# /usr/sbin/apxs -i -c mod_gzip.c
VineLinux2.5 の場合はモジュールは /usr/lib/apache/mod_gzip.so にインストールされました。
httpd.conf の適当なところに以下の 2 行を付け加えます。
LoadModule gzip_module modules/mod_gzip.so
AddModule mod_gzip.c
httpd.conf の LogFormat を mod_gzip 用に書き換えます。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" mod_gzip: %{mod_gzip_result}n In: %{mod_gzip_input_size}n Out: %{mod_gzip_output_size}n %{mod_gzip_compression_ratio}npct." combined_with_mod_gzip
CustomLog /var/log/httpd/access_log combined_with_mod_gzip
httpd.conf に以下の設定を付け加えます。
<IfModule mod_gzip.c>
# mod_gzip の有効/無効
mod_gzip_on Yes
# 圧縮するファイルサイズの下限
mod_gzip_minimum_file_size 300
# 圧縮するファイルサイズの上限
mod_gzip_maximum_file_size 0
# 圧縮に使用するメモリ容量
mod_gzip_maximum_inmem_size 100000
# 一時ファイルを残す/削除
mod_gzip_keep_workfiles No
# 作業ディレクトリ
mod_gzip_temp_dir /tmp
mod_gzip_item_include file \.html$
mod_gzip_item_include file \.htm$
mod_gzip_item_include file \.jsp$
mod_gzip_item_include file \.php$
mod_gzip_item_include file \.pl$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-httpd-cgi
mod_gzip_item_include mime ^application/x-httpd-php
mod_gzip_item_include mime ^httpd/unix-directory$
mod_gzip_item_include handler ^perl-script$
mod_gzip_item_include handler ^server-status$
mod_gzip_item_include handler ^server-info$
mod_gzip_item_exclude file \.css$
mod_gzip_item_exclude file \.js$
mod_gzip_item_exclude mime ^image/.*
mod_gzip_min_http 1001
</IfModule>
設定が完了したら Apache を再起動します。
# service httpd restart
gzip 圧縮が有効になっていると以下のようなログが残ります。
192.168.0.7 - - [03/Jul/2002:21:31:20 +0900] "GET / HTTP/1.1" 200 7577 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)" mod_gzip: OK In: 32152 Out: 7577 77pct.
77% の圧縮に成功している。
またサーバからは以下のようなヘッダが返ってきます。
HTTP/1.1 200 OK
Date: Wed, 03 Jul 2002 14:02:00 GMT
Server: Apache/1.3.26 (Unix) PHP/4.1.2 mod_gzip/1.3.19.1a
Last-Modified: Wed, 03 Jul 2002 10:42:35 GMT
ETag: "15b6b5-7d98-3d23225f"
Accept-Ranges: bytes
Content-Length: 32152
Connection: close
Content-Type: text/html