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。預設情況下,緩衝區大小等於一個記憶體頁面。這取決於平台,可能是 4K 或 8K。

在 0.7.28 版本之前,預設使用四個 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
如果回應標頭包含「Cache-Control」欄位,且具有「no-cache」參數,則啟用壓縮;
no-store
如果回應標頭包含「Cache-Control」欄位,且具有「no-store」參數,則啟用壓縮;
private
如果回應標頭包含「Cache-Control」欄位,且具有「private」參數,則啟用壓縮;
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_staticgunzip 指令處於活動狀態,則啟用或停用插入「Vary: Accept-Encoding」回應標頭欄位。

嵌入式變數

$gzip_ratio
達到的壓縮比率,計算為原始回應大小與壓縮回應大小之間的比率。