酒日記

2001 08 26

Sun, 26 Aug 2001

魔王 (25% × 180 ml)


秋味 (6% × 1000 ml)

2ch の危機を救った (笑) HTTP の gzip 圧縮。Apache だと mod_gzip というモジュールがあるのでこれで実験。
# うち(sake-nikki.dyndns.org) みたいに CPU パワーは余ってるけど回線が細い、ところには効果があるはず。

まず配布元から最新版を持ってくる。 現時点では mod_gzip.c (1.3.19.1a)

apxs を使ってモジュールをコンパイル。

$ /usr/sbin/apxs -i -c mod_gzip.c

httpd.conf に以下のような記述を追加。

LoadModule gzip_module        modules/mod_gzip.so                                                        
AddModule mod_gzip.c                                                                                     

<IfModule mod_gzip.c>
    LogFormat "%h %l %u %t \"%r\" %>s %b mod_gzip: %{mod_gzip_compression_ratio}npct." common_with_mod_gzip_info
    LogFormat "%h %l %u %t \"%r\" %>s %b mod_gzip: %{mod_gzip_result}n In:%{mod_gzip_input_size}n Out:%{mod_gzip_output_size}n:%{mod_gzip_compression_ratio}npct." common_with_mod_gzip_info2

    CustomLog /var/log/httpd/gzip_log common_with_mod_gzip_info2                                         
    mod_gzip_on                 Yes                                                                      
    mod_gzip_minimum_file_size  300                                                                      
    mod_gzip_maximum_inmem_size 60000                                                                    
    mod_gzip_keep_workfiles     No                                                                       
    mod_gzip_temp_dir           /var/tmp/                                                                

    mod_gzip_item_include handler cgi-script                                                             
    mod_gzip_item_include handler perl-script                                                            
    mod_gzip_item_include mime application/x-httpd-php3                                                  
    mod_gzip_item_include file "\.php3$"                                                                 
    mod_gzip_item_include mime text/*                                                                    
#   mod_gzip_item_include image/*                                                                    

    mod_gzip_item_exclude file "\.js$"                                                                   
    mod_gzip_item_exclude file "\.css$"                                                                  

    mod_gzip_min_http 1001                                                                               
    LogLevel Debug                                                                                       
</IfModule>

日本語での解説はApacheにmod_gzipを組み込んで高速化する が分かりやすいのではないかと(手抜き)。

で、さっそく試すが、何故だか自宅サーバの Squid(2.3 stable4) を経由するして sake-nikki.dyndns.org に繋ぐと HTTP/1.0 でのアクセスになってしまい、圧縮が掛からず (squid を通さなければ HTTP/1.1 になる)。はて。 VMWare 上の IE5.5 でも同様だし、いまいち理由が判然としない。

squid のせいかと思って外の (うちの会社の) サーバを見に行くと、ちゃんと HTTP/1.1 で接続してる。 apache のログを見ても、sake-nikki.dyndns.org に HTTP/1.1 で接続してるクライアントも存在する。 外のサーバから

$ telnet sake-nikki.dyndns.org 80
GET / HTTP/1.1
Host: sake-nikki.dyndns.org
Accept-Encoding: gzip

と telnet で直叩きすると、ちゃんと gzip 圧縮されたレスポンスが返ってくる。・・・うーん。謎。 が、もう朝なので取り敢えず断念。まあいいや。

sake-nikki.dyndns.org へそれなりのクライアントでアクセスする場合、HTML ファイル等の転送が速くなってるはずです。多分。


powered by blosxom