モジュール 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 |
|---|---|
| デフォルト |
gzip off; |
| コンテキスト |
http, server, location, if in location |
レスポンスのgzip圧縮を有効または無効にします。
| 構文 |
gzip_buffers |
|---|---|
| デフォルト |
gzip_buffers 32 4k|16 8k; |
| コンテキスト |
http, server, location |
レスポンスを圧縮するために使用するバッファのnumberとsizeを設定します。デフォルトでは、バッファサイズは1つのメモリページに等しくなります。これは、プラットフォームに応じて4Kまたは8Kです。
バージョン0.7.28までは、デフォルトで4つの4Kまたは8Kバッファが使用されていました。
| 構文 |
gzip_comp_level |
|---|---|
| デフォルト |
gzip_comp_level 1; |
| コンテキスト |
http, server, location |
レスポンスのgzip圧縮のlevelを設定します。許容される値は1〜9の範囲です。
| 構文 |
gzip_disable |
|---|---|
| デフォルト | — |
| コンテキスト |
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 |
|---|---|
| デフォルト |
gzip_http_version 1.1; |
| コンテキスト |
http, server, location |
レスポンスを圧縮するために必要なリクエストの最小HTTPバージョンを設定します。
| 構文 |
gzip_min_length |
|---|---|
| デフォルト |
gzip_min_length 20; |
| コンテキスト |
http, server, location |
gzip圧縮されるレスポンスの最小長を設定します。長さは、「Content-Length」レスポンスヘッダーフィールドからのみ決定されます。
| 構文 |
gzip_proxied |
|---|---|
| デフォルト |
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 |
|---|---|
| デフォルト |
gzip_types text/html; |
| コンテキスト |
http, server, location |
「text/html」に加えて、指定されたMIMEタイプに対してレスポンスのgzip圧縮を有効にします。特別な値「*」は、すべてのMIMEタイプに一致します(0.8.29)。「text/html」タイプのレスポンスは常に圧縮されます。
| 構文 |
gzip_vary |
|---|---|
| デフォルト |
gzip_vary off; |
| コンテキスト |
http, server, location |
gzip、gzip_static、またはgunzipディレクティブがアクティブな場合に、「Vary: Accept-Encoding」レスポンスヘッダーフィールドの挿入を有効または無効にします。
組み込み変数
$gzip_ratio- 達成された圧縮率。元のレスポンスサイズと圧縮されたレスポンスサイズの比率として計算されます。