srcache_ignore_content_encoding

`srcache_ignore_content_encoding` 指令控制在获取缓存响应时 NGINX 是否应忽略 Content-Encoding 头。

语法srcache_ignore_content_encoding on | off;
默认值off
上下文http, server, location
参数flag

说明

srcache_ignore_content_encoding 指令是一个标志,用于 HTTP、server 和 location 块的上下文中。当设置为 'on' 时,NGINX 会忽略从上游服务器获取的响应中存在的任何 Content-Encoding 头,从而允许资源以未编码的形式从缓存中提供。这在客户端可能无法正确处理编码或不同客户端期望不同响应格式的场景中特别有用。

在正常情况下,如果上游服务器以不同的编码响应(例如 gzip、deflate 等),NGINX 可能会以这些编码缓存响应。当启用 srcache_ignore_content_encoding 指令时,缓存的内容将始终以不带任何编码的方式存储和提供,而不管上游服务器发送了什么。因此,它可以简化对响应的统一处理,尤其是在有多个客户端或可能与相同缓存内容交互但要求内容不被更改的微服务的部署中。

当设置此指令时,从上游实际获取到的内容会被转换为原始响应,丢弃任何关于其原始编码的指示。这意味着在正确配置的情况下,它有助于在不同客户端请求之间确保一致的行为,同时优化 NGINX 缓存机制中的资源利用。

配置示例

location /example {
    srcache_fetch my_cache;
    srcache_ignore_content_encoding on;
}

确保所有客户端都能处理未编码的内容,因为这将不会提供 gzipped 或其他编码的响应。

请注意,启用此项可能会增加响应大小,因为压缩的内容将以未压缩形式提供。

← 返回所有指令