模块 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;
上下文 httpserverlocationif in location

启用或禁用响应的 gzip 压缩。

语法 gzip_buffers number size;
默认值
gzip_buffers 32 4k|16 8k;
上下文 httpserverlocation

设置用于压缩响应的缓冲区的 numbersize。默认情况下,缓冲区大小等于一个内存页。这可能是 4K 或 8K,具体取决于平台。

在 0.7.28 版本之前,默认使用四个 4K 或 8K 缓冲区。

语法 gzip_comp_level level;
默认值
gzip_comp_level 1;
上下文 httpserverlocation

设置响应的 gzip 压缩 level。可接受的值在 1 到 9 之间。

语法 gzip_disable regex ...;
默认值
上下文 httpserverlocation

此指令出现在 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;
上下文 httpserverlocation

设置请求压缩响应所需的最低 HTTP 版本。

语法 gzip_min_length 长度;
默认值
gzip_min_length 20;
上下文 httpserverlocation

设置将被 Gzip 压缩的响应的最小长度。长度仅由“Content-Length”响应头字段确定。

语法 gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;
默认值
gzip_proxied off;
上下文 httpserverlocation

根据请求和响应,启用或禁用对代理请求的响应进行 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;
上下文 httpserverlocation

除了“text/html”之外,启用对指定 MIME 类型的响应进行 Gzip 压缩。特殊值“*”匹配任何 MIME 类型 (0.8.29)。类型为“text/html”的响应始终被压缩。

语法 gzip_vary on | off;
默认值
gzip_vary off;
上下文 httpserverlocation

如果指令 gzipgzip_staticgunzip 处于活动状态,则启用或禁用插入“Vary: Accept-Encoding”响应头字段。

嵌入式变量

$gzip_ratio
实现的压缩比,计算为原始响应大小和压缩响应大小之间的比率。