2007.11.24 Sat
Apacheから送信するファイルを圧縮して3倍高速化
Apache 2.0でコンテンツの圧縮転送を行うとどの程度パフォーマンスがアップするのかを実際に計測してみました。
設定環境
- Apache 2.2 パッケージインストール版
- PHP 5
Apache 設定ファイルの編集
不要な圧縮は省くようにし、圧縮転送の機能を有効にします。
vi /etc/httpd/conf.d/deflate.conf
<Location />
# 圧縮転送の有効化
AddOutputFilterByType DEFLATE text/html text/plain text/xml
# Netscape 4.xの場合はtext/htmlのみ圧縮
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08の場合は圧縮しない
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIEの場合は全て圧縮
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# プロキシサーバーが圧縮未対応ブラウザへ圧縮ファイルを送信しない
Header append Vary User-Agent env=!dont-vary
</Location>
設定の反映
# service httpd reload
有効後の結果
全てのページでというわけではありませんが、3分の1から2分の1程度のファイルサイズで表示できるようになり、体感できるほどの表示速度のアップになりました。
圧縮転送の計測に使ったサイト
今回圧縮転送の計測に使ったサイト
URLを入力し、計測結果を確認します。
Compression statusの項目で
Compressed(gzip)
と表示されていれば、圧縮転送が正常に行えています。その下は転送結果なので、成果を確認することができます。