ショウジンブログ

Learn as if you will live forever, Live as if you will die tomorrow.

gzip圧縮転送を有効にする@Nginx

Sponsored Links

Webサイトのパフォーマンスチェックツールのひとつ “GTmetrix”を使って計測してみたら「Specify a Vary: Accept-Encoding header」という項目のGRADEが非常に低かったので、前から気にはなってたけど試してなかった「gzipによるコンテツの圧縮転送」をやってみました。

GTmetrix

f:id:showjinx:20160524170025p:plain

編集するファイルはnginx.conf

/etc/nginx/nginx.conf

httpブロックの中に「Gzip Settings」という部分があって、gzip圧縮転送を有効化する諸設定がだいたいコメントアウトされているので、そのへんを有効化しつつ以下のような内容にしてみました。

##  
    # Gzip Settings
    ##  

    gzip on; 
    gzip_http_version 1.0;
    gzip_vary on; 
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_disable "MSIE [1-6]\.";
    gzip_disable "Mozilla/4";
    gzip_proxied any;
    gzip_buffers 16 8k; 
  • gzip on; # gzipを使うという宣言
  • gzip_http_version 1.0; # 1.0が無難らしい
  • gzip_vary on; # header情報にVary情報を付加
  • gzip_comp_level 6; # gzipの圧縮レベルを指定
  • gzip_types text/plain text/css 他; # gzip圧縮の対象ファイル型式をmimeタイプで指定
  • gzip_disable “MSIE [1-6].”; # gzipの対象から外す指定(IEの1から6まで)
  • gzip_disable “Mozilla/4″; # gzipの対象から外す指定(Netscape 4)
  • gzip_proxied any; # Proxy経由での要求にも対応
  • gzip_buffers 16 8k; # gzipで使うバッファのサイズ この指定だと16x8kのメモリが使用されるらしい

設定を上記のように変更し、書式が間違ってないか以下コマンドで確認。

$ sudo /usr/sbin/nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

を確認したら設定内容を反映させるために以下コマンドを実行。

$ sudo /usr/sbin/nginx -s reload

GTmetrixでまた計測してみます。

f:id:showjinx:20160524170331p:plain

Specify a Vary: Accept-Encoding headerのGRADEが大幅に向上したのでGoogleのPage speed、Yahoo!のYSlow、ともにSummaryが大幅にアップした模様。

nginx実践入門 (WEB+DB PRESS plus)

nginx実践入門 (WEB+DB PRESS plus)