カテゴリー
Linux

mod_deflate を設定してウェブページのパフォーマンスを上げますの!【Apache】★gzip★

スクリーンショット 2013-11-09 13.00.44.png

Apache のmod_deflate を設定し、リソースを圧縮することで、ネットワークで送信されるバイト数を減らし、結果としてウェブページを表示するまでの時間の短縮を狙いたいです♪

わたくしたちの WordPress サイトを早く表示させたいのです♪

mod_deflate の設定前に確認すること

gzip への圧縮はサーバが行います。CPU を使います。したがいまして、CPU に余裕が無い場合は逆効果となる可能性がございます。

そこで、sar コマンドで確認しましたら、平均で数 % しか使用しておりませんでしたので、余裕があると判断いたしました。

なお、sar コマンドの使い方は、以前の投稿を参考にいたしました。

mod_deflate の設定手順

mod_deflate がインストールされているかどうか確認いたします。

vim /etc/httpd/conf/httpd.conf

次のように、すでに有効となっておりました。しかしながら、httpd.conf 内を検索いたしましても mod_deflate に関係する設定は、この1行のみでしたの。

LoadModule deflate_module modules/mod_deflate.so

そこで別途 mod_deflate の設定ファイルを作成し、Apache に読み込んでもらうようにいたします。

vim /etc/httpd/conf.d/deflate.conf

設定内容は次のようにいたしました。

# 画像以外全て圧縮する
# DEFLATE フィルタ を有効にして圧縮を有効にする
SetOutputFilter DEFLATE

# 問題を抱えているブラウザに対して、圧縮が行われないようにする
# Netscape 4.x は text/html 以外のタイプの圧縮を扱うことができない
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 は完全に deflate フィルタをオフ
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE は Netscape と判断されるが圧縮を行えるのでユーザーエージェントを修正
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# 画像は圧縮しない
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary

# Proxy サーバで適切なキャッシュ処理が行われるように、HTTP の Vary レスポンスヘッダを追加
Header append Vary User-Agent env=!dont-vary

# 出力に対して行なう圧縮の程度
DeflateCompressionLevel 5

文法テスト

[root@oki2a24 ~]# apachectl configtest
Syntax OK
[root@oki2a24 ~]#

Apache 設定再読み込みをして、反映させます。

[root@oki2a24 ~]# /etc/init.d/httpd reload
httpd を再読み込み中: 
[root@oki2a24 ~]#

mod_deflate が機能しているかどうかの確認

Chrome のデベロッパーツールを使用して、レスポンスヘッダーを確認し、無事 gzip 圧縮が行われていることを確かめることができましの♪

  • HTTP レスポンスヘッダーに「Content-Encoding: gzip」が追加されていることから、mod_deflate が機能していることが確認できた♪

スクリーンショット_2013-11-09_14.19.52-5.png

おわりに

事の始まりは、Google の PageSpeed Insights にて、本サイトを診断したときにアドバイスのひとつとして、コンテンツを圧縮転送するとパフォーマンスがよくなるよ!といった趣旨の言葉をいただいたことでございました。

mod_deflate でしたら、気軽に導入できるかしらと思いまして、今回試させていただきました。

最後に、参考にさせていただいたページです。ありがとう存じます!

以上です。

コメントを残す