WEB開発備忘録

ホームページをapacheのmod_deflateで圧縮転送 / ホームページ高速表示

ホームページの表示速度向上に「apacheのmod_deflate」で圧縮転送する設定をした際のメモ書きです。
httpd.confあるいは.htaccessに以下の記述をします。

<IfModule mod_deflate.c>
  SetOutputFilter DEFLATE
  # Mozilla4系(MSIE以外)旧ブラウザで無効
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
  # 圧縮済コンテンツ(gif/jpg/etc)
  SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
  SetEnvIfNoCase Request_URI _\.utxt$ no-gzip
  # 圧縮mime
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/atom_xml
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/x-httpd-php
</IfModule>

適用されたmimeタイプのファイルは、gzipで圧縮転送されるようになります。
ブラウザは圧縮されたファイル群を受け取ったのちに解凍して表示します。

この設定を使用すると圧倒的にファイル転送量が減ります。
トレードオフで、サーバ側のファイル圧縮処理がコストとして掛かるようになります。

提供するホームページ、サイトの状況に応じて設定しましょう。

圧縮された後の転送状況はリクエストヘッダーで確認出来ます。
chromeの開発者ツールでヘッダー情報を確認