ngx_http_gzip_module 模块

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 on | off;
默认值:gzip off;
上下文:http, server, location, if in location

启用或禁用响应的gzip。

gzip_buffers 指令

语 法:gzip_buffers number size;
默认值:gzip_buffers 32 4k|16 8k;
上下文:http, server, location

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

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

gzip_comp_level 指令

语 法:gzip_comp_level level;
默认值:gzip_comp_level 1;
上下文:http, server, location

设置响应的 gzip 压缩级别。可接受的值在 1 到 9 的范围内。

gzip_disable 指令

语 法: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 指令

语 法:gzip_http_version 1.0 | 1.1;
默认值:gzip_http_version 1.1;
上下文:http, server, location

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

gzip_min_length 指令

语 法:gzip_min_length length;
默认值:gzip_min_length 20;
上下文:http, server, location

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

gzip_proxied 指令

语 法: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 如果响应头包含带有 “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 mime-type ...;
默认值:gzip_types text/html;
上下文:http, server, location

除了 “text/html” 之外,还为指定的 MIME 类型启用响应的 gzip 压缩。特殊值 “*” 匹配任何 MIME 类型 (0.8.29)。 “text/html” 类型的响应总是被压缩的。

gzip_vary 指令

语 法:gzip_vary on | off;
默认值:gzip_vary off;
上下文:http, server, location

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

嵌入变量

$gzip_ratio

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

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号