what else?

エンジニア、UI、UXとかについて、備忘録を走り書いたもの

nginxサーバでgzipの設定する方法とその確認

nginxサーバにgzip圧縮を設定してみました。
画像、css、js、その他ファイルなどの静的コンテンツの容量を減らして、サーバのリクエスト量を減らしちゃうぜってやつです。

confファイルの設定

confファイルに以下のように書く。
nginx.confでもいいし、virtualhostを設定した別個のconfファイルでもOK。

各場所はserver{〜}の中。

server {
    gzip on;
    gzip_types image/png image/gif image/jpeg text/javascript text/css;
    gzip_min_length 1000;
    gzip_proxied any;
    gunzip on;
}

それぞれの意味とか

gzip on;

まずはgzipを使えるようにする。

gzip_types image/png image/gif image/jpeg text/javascript text/css;

対象となるファイルの設定。
画像ファイル(png,gif,jpg)とjs、cssを対象にしました。

gzip_min_length 1000;

gzip化する画像の最低ファイル容量の指定。
もともと軽い画像だと、圧縮する方に時間がかかってしまい、結果として遅くなっちゃいます。
とりあえず1000で指定。

gzip_proxied any;


リクエストの種別にgzipするかを指定できる。
今回は全てのリクエストを対象にするので、anyを指定。

gunzip on;

gzipに対応していないブラウザ向けの処理。

設定後は再起動

sudo systemctl restart nginx

gzipが有効かどうか確認する方法

gzipを設定したサーバの画像URLを指定して、以下のコマンドを実行。

curl -I -H 'Accept-Encoding: gzip,deflate' https://ドメイン/画像のパスとファイル名

リクエストに

Content-Encoding: gzip

とあればgzip化が成功してます。