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
を設定します。デフォルトでは、バッファサイズはメモリページと同じサイズです。これは4Kあるいは8kです。プラットフォームに依存します。
バージョン0.7.28まではデフォルトで4つの4Kまたは8Kのバッファが使われていました。
構文: |
gzip_comp_level |
---|---|
デフォルト: |
gzip_comp_level 1; |
コンテキスト: |
http , server , location |
応答の圧縮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"フィールドが含まれていなければ、圧縮を有効にします。
認証
- リクエストヘッダに"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
- 達成された圧縮比率、元と圧縮後の応答サイズから計算される。