GZip#
该模块是一个使用 "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 压缩。
gzip_buffers#
设置用于压缩响应的缓冲区数量和大小。默认情况下,缓冲区大小等于一个内存页大小,这取决于平台,通常是 4K 或 8K。
gzip_comp_level#
设置响应的 gzip 压缩级别。可接受的值范围从 1 到 9。
gzip_disable#
禁止对 "User-Agent" 请求头字段与指定正则表达式匹配的请求进行 gzip 压缩。
特殊的掩码 msie6
对应于正则表达式 "MSIE [4-6].",但工作速度更快。"MSIE 6.0; ... SV1" 被排除在该掩码之外。
gzip_http_version#
设置请求所需的最低 HTTP 版本以压缩响应。
gzip_min_length#
设置将被 gzip 压缩的响应的最小长度。长度仅从 "Content-Length" 响应头字段中确定。
gzip_proxied#
|
|
默认 |
|
http, server, location |
根据请求和响应的情况启用或禁用对代理请求的响应进行 gzip 压缩。请求是代理请求的事实由请求头字段 "Via" 的存在来确定。该指令接受多个参数:
|
禁用对所有代理请求的压缩,忽略其他参数; |
|
如果响应头包含 "Expires" 字段且值禁止缓存,则启用压缩; |
|
如果响应头包含 "Cache-Control" 字段且具有 "no-cache" 参数,则启用压缩; |
|
如果响应头包含 "Cache-Control" 字段且具有 "no-store" 参数,则启用压缩; |
|
如果响应头包含 "Cache-Control" 字段且具有 "private" 参数,则启用压缩; |
|
如果响应头不包含 "Last-Modified" 字段,则启用压缩; |
|
如果响应头不包含 "ETag" 字段,则启用压缩; |
|
如果请求头包含 "Authorization" 字段,则启用压缩; |
|
对所有代理请求启用压缩。 |
gzip_types#
启用对指定 MIME 类型的响应进行 gzip 压缩,除了 "text/html" 之外。特殊值 "*" 匹配任何 MIME 类型。"text/html" 类型的响应始终被压缩。
gzip_vary#
启用或禁用在响应头中插入 "Vary: Accept-Encoding" 字段,如果指令 gzip、gzip_static 或 gunzip 激活。
内置变量#
$gzip_ratio
#
计算出的压缩比率,作为原始响应大小与压缩响应大小的比率。