gzip_vary
`gzip_vary` 指令用于控制是否在针对经 `gzip` 压缩的内容的响应中包含 `Vary: Accept-Encoding` 响应头。 — NGINX HTTP Core
gzip_vary
httpserverlocation
语法gzip_vary on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
`gzip_vary` 指令在 NGINX 中用于启用或禁用在对响应应用 gzip 压缩时包含 `Vary: Accept-Encoding` HTTP 头。这个头对代理和 CDNs 的缓存行为很重要,因为它表明响应可能会根据客户端发送的 `Accept-Encoding` 请求头而有所不同。当 `gzip_vary` 设置为 `on` 时,能够确保支持不同内容编码的用户代理根据它们支持的编码收到正确缓存的资源版本。 当使用 `gzip_vary` 时,如果启用了 gzip 并激活了此指令,NGINX 会在响应中添加 `Vary: Accept-Encoding` 头。这使得中间缓存系统能够知道响应内容可能会根据客户端是否接受 gzip 编码的数据而变化。如果设置为 `off`,则不会添加此头,这可能导致不期望的缓存行为,尤其是对不请求 gzip 压缩的用户。 此指令可以在 `http`、`server` 和 `location` 等不同上下文中定义,因而对各种配置很灵活。当不同类型的客户端可能需要基于其编码能力对同一资源的不同表示时,该指令非常有用。
配置示例
http {
gzip on;
gzip_vary on;
}⚠
确保你的缓存机制(例如,代理或 CDN)识别 `Vary` 响应头。
⚠
将 `gzip_vary` 设置为 `on` 而未启用 gzip 可能会导致混淆,因为该响应头会被发送但不会产生任何效果。