nginxでgzip圧縮を有効にすることで転送量を抑えページの表示速度を改善する

スポンサーリンク

はじめに

nginxでgzip圧縮を有効にすることでコンテンツの転送量を抑えページの表示速度を改善するためのまとめです。

環境

VPS さくらVPS 1G SSD
OS CentOS 7.3
Webサーバ nginx/1.10.2

gzip圧縮とは

ここでのgzip圧縮とはWebサーバ上のリソースをgzipで圧縮してからファイルを配信し、受け取るブラウザ側でgzipを復元することを言います。gzip圧縮を有効にすることでファイルの転送量を削減しネットワークのリソースを削減することが期待できます。
ブラウザ側でgzip圧縮に対応している必要がありますが、最近のブラウザではほぼ全てのブラウザで対応してます。

gzip圧縮によるファイル配信のメリット

Webサーバからファイルを配信する際、gzip圧縮したファイルを配信することで通信量を削減することができます。

gzip圧縮によるファイル配信のデメリット

gzip圧縮を行なうためWebサーバに負荷がかかります。そのため一度gzip圧縮されたファイルを使いまわす設定もあります。

nginxの設定

nginxでgzip圧縮を行なうには設定ファイルを以下のように変更します。

# vi /etc/nginx/nginx.conf

http {
    (略)

    gzip on;
    gzip_http_version 1.1;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_types text/plain image/png image/jpeg image/gif application/json application/javascript application/x-javascript text/javascript text/xml application/xml application/rss+xml application/atom+xml application/rdf+xml text/css;
    gzip_disable "MSIE [1-6].(?!.*SV1)";

    (略)
}
gzip
ONにすることでgzipが有効になります。
gzip_http_version
圧縮するリクエストの最小のHTTPバージョンを指定します。
gzip_vary
ONの場合レスポンスヘッダに”Vary: Accept-Encoding”を挿入します。
gzip_comp_level
圧縮のレベルを指定します。1~9の間で指定し数字が大きいほど圧縮率は高いがCPUリソースを消費します。
gzip_types
指定されたMIMEタイプを圧縮します。text/htmlは常に圧縮されます。
gzip_disable
指定された正規表現に一致する”User-Agent”ヘッダーをもつ要求の圧縮を無効にします。

設定ファイルを確認し問題がなければnginxを再起動します。

# nginx -t
# systemctl restart nginx
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする