模块 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 |
设置响应的 gzip 压缩 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- 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 |
|---|---|
| 默认值 |
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- 实现的压缩比,计算方式为原始响应大小与压缩后响应大小之比。