nginx+php-fpm(ISPConfig3)でExpiresとDeflateを有効にする方法

投稿者: 閲覧数9,612

nginx+php-fpm環境(ISPConfig3利用)でのキャッシュ有効期限(Expires)の設定とgzip圧縮転送(Deflate)の設定はデフォルトでは有効になっていません。
これらを有効にする方法は簡単です。

バージョン情報

nginx 1.1.19
php5-fpm 5.3.10
ISPConfig 3.0.5.3

Expires設定

ExpiresはCSS、画像、JavaScript、アイコン、Flash、Webフォントなどをキャッシュしてリクエスト数を減らす為の設定です。そのキャッシュの有効期限を設定します。

有効期限を7日に設定
/etc/nginx/sites-available/[domain].vhost のserver {} の中に以下の設定を追加します。
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|swf|woff)$ {
    expires 7d;
}
location ~ favicon.ico {
    expires max;
}

Deflate設定

Deflateは各コンテンツをサーバーが転送前にgzipにて圧縮して軽量化したものを転送します。そして受け取ったブラウザ側で展開して表示する設定です。最近のサーバー&コンピュータ事情や回線事情などではこのDeflate機能を使ったほうがWEBを高速に表示できるようになってます。

gzip圧縮転送を設定
/etc/nginx/sites-available/[domain].vhost のserver {} の中に以下の設定を追加します。
gzip on;
gzip_min_length  1100;
gzip_buffers  4 32k;
gzip_types    text/plain text/xml text/css application/x-javascript application/javascript application/ecmascript application/rss+xml;
gzip_vary on;

ISPConfig3でnginxのExpiresとDeflateを設定

ISPConfig3のadmin権限があるならブラウザからExpiresもDeflateも設定可能です。
Sites > ウェブサイト の設定したい Domain を開き、オプションから「nginx Directives」へ下記の設定をコピペして保存すれば1分後ぐらいにはキャッシュの有効期限と圧縮転送の設定が有効になります。

# enable gzip compression
gzip on;
gzip_min_length  1100;
gzip_buffers  4 32k;
gzip_types    text/plain text/xml text/css application/x-javascript application/javascript application/ecmascript application/rss+xml;
gzip_vary on;
# end gzip configuration
# enable expires
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|swf|woff)$ {
   expires 7d;
}
location ~ favicon.ico {
   expires max;
}
# end expires