gzip_vary

`gzip_vary` 指令用于控制是否在针对经 `gzip` 压缩的内容的响应中包含 `Vary: Accept-Encoding` 响应头。

语法gzip_vary on | off;
默认值off
上下文http, server, location
参数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 压缩的用户。

此指令可以在 httpserverlocation 等不同上下文中定义,因而对各种配置很灵活。当不同类型的客户端可能需要基于其编码能力对同一资源的不同表示时,该指令非常有用。

配置示例

http {
    gzip on;
    gzip_vary on;
}

确保你的缓存机制(例如,代理或 CDN)识别 Vary 响应头。

gzip_vary 设置为 on 而未启用 gzip 可能会导致混淆,因为该响应头会被发送但不会产生任何效果。

← 返回所有指令