Wadslog

[Apache] mod_deflateでコンテンツをgzip圧縮して通信する

Sep 8, 2008

mod_deflateを使って通信を圧縮する設定をします。 圧縮するコンテンツのタイプは、htmlとcss、javascriptを対象とします。 Apacheのコンパイル Apacheのバージョンは2.2.9を使用``` $ ./configure –enbale-deflate=shared $ make $ su

目次

make install

**httpd.confの編集** 一番簡単な設定は以下の1行を追加するだけです。 AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

特定のディレクトリ以下にだけ適用する場合は以下のように、ディレクティブ内に記述します … AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

もう少し細かく設定もできます。 例えば、ブラウザによってはgzip圧縮に対応していない場合があるので、それらのブラウザ(ユーザーエージェント)からのアクセスされた場合には圧縮しないように設定ような場合は、以下のようになります。 BrowserMatch ^MSIE [6-9] gzip BrowserMatch ^Moxilla/[5-9] gzip

続いて、正しく圧縮されているかどうかを確認するために、ログの設定を行います。 DeflateFilterNote Input instream DeflateFilterNote Output outstream DeflateFilterNote Ratio ratio LogFormat ‘"%r" %{outstream}n/%{instream}n (%{ratio}n%%) %{User-agent}i’ deflate CustomLog logs/deflate_log deflate

DeflateFilterNoteのInputは圧縮前のバイト数、Outputは圧縮後のバイト数、Raitoは圧縮率(Input × Output × 100)をあらわします。 設定の詳細および、その他の設定は[Apacheのドキュメンテーション](http://httpd.apache.org/docs/2.2/mod/mod_deflate.html)を参照してください。 **設定できたか確認する** これで基本的な設定が終了しましたので、実際に圧縮されているか確認します。 Apacheを再起動後、設定をしたページにアクセスしてdeflate\_logを確認します。 $ less /usr/local/apache2/log/deflate_log

“GET / HTTP/1.1” 5464/44920 (12%) Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 “GET /favicon.ico HTTP/1.1” -/- (-%) Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 “GET /images/logo.gif HTTP/1.1” -/- (-%) Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 “GET /css/style.css HTTP/1.1” 2786/12699 (21%) Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 “GET /js/prototype.js HTTP/1.1” 22295/99938 (22%) Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1 …

comments powered by Disqus