5分でできる! Apache2.4でのサイト読み込み速度の高速化設定 2選

ソフトウェア

ブラウザに静的ファイルをキャッシュさせる「mod_expire」と、
静的データを圧縮してから送信する「mod_deflate!」を導入する方法を解説します。

WindowsでのApache2.4で設定しましたが、概ね環境に依らず効果が出るハズです。

理論上、読み込みが若干早くなります。

 mod_expire(キャッシュ)を設定

ブラウザに静的ファイルをキャッシュさせることで、再訪問したユーザーの読み込み時間を短くできます。

まず、httpd.confを開き
「LoadModule expires_module modules/mod_expires.so」のモジュールを有効化します。

先頭の#を外し、コメントアウトを解除するだけでOK。

次に、httpd.conf末尾に以下の設定文をコピペします。

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 14 days"
ExpiresByType image/gif "access plus 14 days"
ExpiresByType image/jpg "access plus 14 days"
ExpiresByType image/jpeg "access plus 14 days"
ExpiresByType image/png "access plus 14 days"
ExpiresByType image/svg "access plus 14 days"
ExpiresByType application/x-javascript "access plus 14 days"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType text/js "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
</IfModule>

あとはapacheの再起動で設定完了

キャッシュ期間などは各々で追求してください。私は上記設定で行ってます。

mod_deflate!(圧縮して送信)を設定

データを圧縮してユーザに送信する設定を行うことで、全ユーザーの読み込み速度が向上します。

httpd.confを開き
「LoadModule filter_module modules/mod_filter.so」のモジュールを有効化します。

先頭の#を外し、コメントアウトを解除するだけでOK。

次に、httpd.conf末尾に以下の設定文をコピペ。

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE

# Mozilla4系などの古いブラウザで圧縮無効
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch ^Mozilla/4 gzip-only-text/html
# MSIEは除外
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# gifやjpgなど圧縮済みのコンテンツは再圧縮しない
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI _\.utxt$ no-gzip

# htmlやcssなどは圧縮
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>

あとはapacheの再起動で設定完了!

エラーが出て、上手く設定できない時は???

大抵モジュールを読み込めていない場合にエラーが出ます。

例えば以下のようなエラー
「Invalid command ‘AddOutputFilterByType’, perhaps misspelled or defined by a module not included in the server configuration」
とかは正に、モジュールがコメントアウトされていることが原因です。

  • LoadModule filter_module modules/mod_filter.so
  • LoadModule expires_module modules/mod_expires.so

ちゃんとこれらの文頭の#を外しましょう

Apacheのセキュリティ対策についても併せてごらん下さい。

あとSSL化についても

タイトルとURLをコピーしました