カテゴリー
サイト構築

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

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でコンテンツを圧縮して返してくれるようになりました。

この記事を書いた人: A-tak

A-tak.com(えいたっく どっとこむ)の管理人。
Apple野郎なおっさんでしたが、ちょっと最近のAppleには飽き気味。
A-tak.comは2002年2月から運営(前身のサイトは1999年3月から)。今年で18年目!

Youtube / Twitter / Mastodon / Facebook