A-TAK.COM

GCEでNginxのgzip設定が利かない

※Amazonのアソシエイトとして、A-TAK.COMは適格販売により収入を得ています
※本サイトではその他アフィリエイトも利用しております。

シェア

20151122gce logo 01

 GCEに立てたNginxでgzip設定が利かないので、ハマってましたがLBの後ろにある場合は設定が必要でした。

nginxのGzipが有効にならない

PageSpeed Insights

 Google PageSpeed Insights で自分のサイトを調べてみるとコンテンツの圧縮がされていないと指摘された。おかしいな、設定しているはずなのに。

モジュールは入っている

 CentOS7にyumで入れたnginxを使っています。最初、yumでいれたnginxはgzipのモジュールが有効じゃないのかと思ったのですが、

nginx -V

で確認すると、普通にモジュールはいってました。ということは原因はこれじゃない。

プロキシの後ろでは追加の設定が必要

 うちのサイトはGoogle Compute EngineのHTTP負荷分散を使っているのです。nginxはプロキシサーバーの後ろにいる場合はデフォルトでgzip圧縮をしない仕様のようです。

 

圧縮と解凍 | NGINX

デフォルトでは、NGINXはプロキシされたリクエスト(プロキシサーバからくるリクエスト)への応答は圧縮しません。プロキシサーバからきたリクエストだという根拠は、リクエスト中のViaフィールドの存在によって決定されます。これらの応答も圧縮するように設定するには、gzip_proxied ディレクティブを使います。

 なるほどー!

 そんなわけで以下の設定を追加しました。

gzip_proxied any;

 これでGoogle Compute Engineのロードバランサーの後ろにいるNginxがgzipでコンテンツを圧縮して返してくれるようになりました。


シェア

投稿日

カテゴリー:

投稿者:

カテゴリ一覧