HP高速化、apacheでmod_deflate(mod_gzip)する方法

ホームページの表示速度を早くするために、サーバーからホームページを見に来た人にデータを圧縮して送る方法です。
圧縮して送ることで、容量が軽くなり、早くホームページを表示することができるようになります。

Apache2.xの場合

mod_deflateモジュールを使って圧縮を行います。

まずは、テキスト文章(.html,.css,.jsなどなど)を圧縮する方法

AddOutputFilterByType  DEFLATE text/html text/plain text/xml

をapacheの設定ファイル(httpd.conf)の中に記入するだけで完了です。

画像以外を全て圧縮する方法

画像はもともと圧縮してあるため、圧縮を行うとサーバー側に逆に負担をかけてしまうので行うのをお勧めしません。
Apache2.0.x

<IfModule mod_deflate.c>
  SetOutputFilter  DEFLATE
  
  #Netscape 4.x
  BrowserMatch  ^Mozilla/4 gzip-only-text/html
  
  #Netscape 4.06
  BrowserMatch ^Mozilla/4.0[678] no-gzip
  
  #MSIE masquerades as Netscape,but it isfine
  #BrowserMatch bMSIE !no-gzip !gzip-only-text/html
  
  #NOTE:Due to abug in mod_setenvif up to Apache2.0.48
  #the above regex won't work.You can use the following
  #workaround to get the desired effect:
  BrowserMatch bMSI[E] !no-gizp !gzip-only-text/html
  
  #Don't compress images
  SetEnvIfNoCase  Request_URI.(?:gif|jpe?g|png)$ no-gzip dont-vary
  
  #Make sure proxies don't deliver the wrong content
  Header append Vary User-Agent env=!dont-vary
  </IfModule>

Apache2.2.x用

<IfModule mod_deflate.c>
  SetOutputFilter  DEFLATE
  
  #Netscape 4.x
  BrowserMatch  ^Mozilla/4 gzip-only-text/html
  
  #Netscape 4.06
  BrowserMatch ^Mozilla/4.0[678] no-gzip
  
  #MSIE masquerades as Netscape,but it isfine
  #BrowserMatch bMSIE !no-gzip !gzip-only-text/html
   
  #Don't compress images
  SetEnvIfNoCase  Request_URI.(?:gif|jpe?g|png)$ no-gzip dont-vary
  
  #Make sure proxies don't deliver the wrong content
  Header append Vary User-Agent env=!dont-vary
  </IfModule>

圧縮に対応させない場合

古い機種の携帯などでそのホームページを見る人がいる場合は注意が必要です。
そんなときは、.htaccessを使ってそのフォルダの中のホームページを圧縮させないようにすれば、大丈夫。

<IfModule>
SetEnv no-gzip  
</IfModule> 

コメント
コメントする