模块 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,默认情况下使用了四个 4K 或 8K 缓冲区。
| 语法: | gzip_comp_level |
|---|---|
| 默认: |
gzip_comp_level 1; |
| 上下文: | http, server, location |
设置响应的 gzip 压缩 level。可接受的值范围从 1 到 9。
| 语法: | gzip_disable |
|---|---|
| 默认: | — |
| 上下文: | http, server, location |
此指令出现在版本 0.6.23 中。
禁用对请求的响应进行 gzip 压缩,“User-Agent” 头字段与任何指定的正则表达式匹配。
特殊掩码“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 - 禁用所有代理请求的压缩,忽略其他参数;
-
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 text/html; |
| 上下文: | http, server, location |
启用对指定的MIME类型的响应进行gzip压缩,除了“text/html”之外。特殊值“*”匹配任何MIME类型(0.8.29)。类型为“text/html”的响应始终被压缩。
| 语法: | gzip_vary |
|---|---|
| 默认值: |
gzip_vary off; |
| 上下文: | http, server, location |
启用或禁用插入“Vary: Accept-Encoding”响应头字段,如果指令 gzip、gzip_static 或 gunzip 处于活动状态。
嵌入式变量
-
$gzip_ratio - 已实现的压缩比,计算为原始响应大小与压缩后响应大小的比率。
