compression_normalize_accept_encoding

`compression_normalize_accept_encoding` 指令配置 NGINX 对客户端请求的 Accept-Encoding 头进行规范化,以便一致地处理压缩。

语法compression_normalize_accept_encoding combinations1 [ combinations2 .. ] | off;
默认值off
上下文http, server, location
参数1+

说明

compression_normalize_accept_encoding 指令是 NGINX Accept-Encoding Normalization 模块的一部分,旨在有效管理并标准化客户端发送的 Accept-Encoding 头。通过指定支持的压缩方法组合,该指令允许服务器在生成响应时确定应优先使用哪种编码类型。这对于优化压缩效率并获得更好的缓存性能尤其有用。

使用该指令时,它接受一个或多个压缩组合的列表。例如,使用像 compression_normalize_accept_encoding gzip,br,zstd gzip,br zstd br gzip; 这样的配置,会指示 NGINX 首先尝试以 gzip 和 Brotli (br) 响应,如果客户端的 Accept-Encoding 头中未匹配这些优选组合,则回退到 zstd。如果在传入请求中未找到任何指定的组合,该指令会指示 NGINX 完全删除 Accept-Encoding 头。这样严格的规范化过程可以防止由不一致的 Accept-Encoding 值引起的问题。

此外,有一个变量 $compression_original_accept_encoding,用于保留规范化之前的原始 Accept-Encoding 头值。该变量可用于调试或记录,确保尽管进行了规范化,服务器仍能了解客户端请求的初始设置。

配置示例

http {
    compression_normalize_accept_encoding gzip,br,zstd gzip,br zstd br gzip;

    server {
        listen 80;
        server_name example.com;

        location / {
            # Your configurations
        }
    }
}

确保指令中指定的组合是有效的,并且被服务器的压缩模块所支持。

组合的准确顺序至关重要,因为第一个匹配项将决定最终的 Accept-Encoding 头部。

小心使用 'off';如果设置不正确,可能会削弱压缩规范化的效果。

← 返回所有指令