モジュール ngx_http_gzip_module

設定例
ディレクティブ
     gzip
     gzip_buffers
     gzip_comp_level
     gzip_disable
     gzip_http_version
     gzip_min_length
     gzip_proxied
     gzip_types
     gzip_vary
組み込み変数

ngx_http_gzip_module モジュールは、「gzip」メソッドを使用してレスポンスを圧縮するフィルタです。これにより、送信されるデータのサイズを半分、あるいはそれ以上に削減できます。

SSL/TLSプロトコルを使用する場合、圧縮されたレスポンスはBREACH攻撃を受ける可能性があります。

設定例

gzip            on;
gzip_min_length 1000;
gzip_proxied    expired no-cache no-store private auth;
gzip_types      text/plain application/xml;

$gzip_ratio 変数は、達成された圧縮率をログに記録するために使用できます。

ディレクティブ

構文 gzip on | off;
デフォルト
gzip off;
コンテキスト http, server, location, if in location

レスポンスのgzip圧縮を有効または無効にします。

構文 gzip_buffers number size;
デフォルト
gzip_buffers 32 4k|16 8k;
コンテキスト http, server, location

レスポンスを圧縮するために使用するバッファのnumbersizeを設定します。デフォルトでは、バッファサイズは1つのメモリページに等しくなります。これは、プラットフォームに応じて4Kまたは8Kです。

バージョン0.7.28までは、デフォルトで4つの4Kまたは8Kバッファが使用されていました。

構文 gzip_comp_level level;
デフォルト
gzip_comp_level 1;
コンテキスト http, server, location

レスポンスのgzip圧縮のlevelを設定します。許容される値は1〜9の範囲です。

構文 gzip_disable regex ...;
デフォルト
コンテキスト http, server, location

このディレクティブはバージョン0.6.23で登場しました。

指定された正規表現のいずれかに一致する「User-Agent」ヘッダーフィールドを持つリクエストに対して、レスポンスのgzip圧縮を無効にします。

特別なマスク "msie6"(0.7.12)は、正規表現 "MSIE [4-6]\."に対応しますが、より高速に動作します。バージョン0.8.11以降、「MSIE 6.0; ... SV1」はこのマスクから除外されます。

構文 gzip_http_version 1.0 | 1.1;
デフォルト
gzip_http_version 1.1;
コンテキスト http, server, location

レスポンスを圧縮するために必要なリクエストの最小HTTPバージョンを設定します。

構文 gzip_min_length length;
デフォルト
gzip_min_length 20;
コンテキスト http, server, location

gzip圧縮されるレスポンスの最小長を設定します。長さは、「Content-Length」レスポンスヘッダーフィールドからのみ決定されます。

構文 gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;
デフォルト
gzip_proxied off;
コンテキスト http, server, location

リクエストとレスポンスに応じて、プロキシされたリクエストに対するレスポンスのgzip圧縮を有効または無効にします。リクエストがプロキシされているという事実は、「Via」リクエストヘッダーフィールドの存在によって決定されます。このディレクティブは複数のパラメータを受け入れます。

off
他のパラメータを無視して、すべてのプロキシされたリクエストに対する圧縮を無効にします。
expired
レスポンスヘッダーにキャッシュを無効にする値を持つ「Expires」フィールドが含まれている場合、圧縮を有効にします。
no-cache
レスポンスヘッダーに「no-cache」パラメータを持つ「Cache-Control」フィールドが含まれている場合、圧縮を有効にします。
no-store
レスポンスヘッダーに「no-store」パラメータを持つ「Cache-Control」フィールドが含まれている場合、圧縮を有効にします。
private
レスポンスヘッダーに「private」パラメータを持つ「Cache-Control」フィールドが含まれている場合、圧縮を有効にします。
no_last_modified
レスポンスヘッダーに「Last-Modified」フィールドが含まれていない場合、圧縮を有効にします。
no_etag
レスポンスヘッダーに「ETag」フィールドが含まれていない場合、圧縮を有効にします。
auth
リクエストヘッダーに「Authorization」フィールドが含まれている場合、圧縮を有効にします。
any
すべてのプロキシされたリクエストに対して圧縮を有効にします。

構文 gzip_types mime-type ...;
デフォルト
gzip_types text/html;
コンテキスト http, server, location

text/html」に加えて、指定されたMIMEタイプに対してレスポンスのgzip圧縮を有効にします。特別な値「*」は、すべてのMIMEタイプに一致します(0.8.29)。「text/html」タイプのレスポンスは常に圧縮されます。

構文 gzip_vary on | off;
デフォルト
gzip_vary off;
コンテキスト http, server, location

gzipgzip_static、またはgunzipディレクティブがアクティブな場合に、「Vary: Accept-Encoding」レスポンスヘッダーフィールドの挿入を有効または無効にします。

組み込み変数

$gzip_ratio
達成された圧縮率。元のレスポンスサイズと圧縮されたレスポンスサイズの比率として計算されます。