2007.11.24 Sat

Apacheから送信するファイルを圧縮して3倍高速化

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)

と表示されていれば、圧縮転送が正常に行えています。その下は転送結果なので、成果を確認することができます。

設定参考サイト

システム構築に関する覚書トップページへ