Nginxでgzip圧縮を設定する

ページが遅ければ、それだけユーザーの離脱率が上昇するため、SEO的にもサイトの読み込みはかなり重要になります。
今回Nginxで画像やCSSなどをgzip圧縮する方法を解説します。
gzip圧縮と効果
LinuxなどのUNIX系のOSで利用されるファイル圧縮形式です。
クライアントへリクエストされたデータを返却する際に、サーバ側で Gzip 圧縮してデータの容量を小さくし、データの転送速度を高速化することが可能になります。
Nginxで gzip圧縮を行う
nginx.confファイルのhttp内に下記記述を設定し、再起動すると対応することができます。
http { 中間表記省略 gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 5k; gzip_min_length 1500; gzip_http_version 1.1; gzip_types text/plain image/png image/gif image/jpeg text/css text/xml text/javascript; }
各内容の解説
gzip on;
gzip on;で gzip圧縮を有効にします。
gzip_disable
古いブラウザではgzip圧縮に対応していない場合があり
gzip圧縮をしないブラウザを指定します。 今回は MicroSoft IE Ver 6を指定しています。
※任意設定項目です。
gzip_vary on
Accept-EncodingへVary: Accept-Encodingを付与します。 Nginxの前後にキャッシュサーバやCDNが設定されている場合は 指定をお勧めします。
gzip_proxied any;
Viaヘッダが含まれていると設定ファイルにgzip on;と書いてもレスポンスがgzip圧縮されないので、本設定をOnにする必要があります。
※gzipvaryやgzipproxiedの解説はこのサイトを参照しました
gzipcomplevel
0~9の間で圧縮レベルを設定します。 0は非圧縮となります。
gzip_buffers
圧縮サイズのバッファです。
gzipminlength
圧縮対象の最小ファイル設定 単位はバイトです。
なお、この設定より容量が軽い画像などは圧縮に時間がかかる場合があります。
gziphttpversion
応答の圧縮が要求されるリクエストの最小のHTTPバージョンを設定します。デフォルトが1.1です。
gzip_types
圧縮するコンテンツタイプです。 text/htmlはデフォルトで設定されているので、指定しないようにして下さい。
上記を設定後リロードすれば設定が反映されます。
sudo service nginx reload
その他関連記事
Nginxでトレイリングスラッシュ (trailing slash)をリダイレクトする
無料で使えるCDN Cloudflare(クラウドフレア)の登録方法を解説