unbrotli

`unbrotli` 指令启用对不支持 Brotli 的客户端的 Brotli 编码响应的解压缩。

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

说明

unbrotli 指令是 NGINX 模块 ngx_unbrotli 的一部分,该模块用于处理 Brotli 压缩的响应(由 'Content-Encoding: br' 头指示)。当启用此指令时,NGINX 会检查来自客户端请求的 Accept-Encoding 头以确定其压缩能力。如果客户端不支持 Brotli 压缩,服务器会在发送给客户端之前对 Brotli 编码的内容进行解压缩,从而确保兼容性并为不同能力的客户端提供无缝体验。

该指令可以在 httpserverlocation 上下文中指定,并通过一个简单的标志(onoff)运行。默认情况下其值为 off,这意味着 Brotli 响应不会被解压缩,除非显式启用。此外,用户可以使用 unbrotli_force 指令,它会强制对所有 Brotli 响应进行解压缩,而不考虑客户端的声明偏好。与此同时,unbrotli_buffers 指令允许配置为解压过程分配的内存缓冲区的数量和大小,这可以为大型响应优化性能,但可能会增加内存使用量。

总体而言,unbrotli 指令在确保使用旧版或不支持 Brotli 的客户端能够接收所需内容方面发挥了关键作用,同时允许服务器运维利用 Brotli 的高效压缩来节省存储和带宽。

配置示例

location /assets/ {
    unbrotli on;
    unbrotli_buffers 32 4k;
    ...
}

当使用 Brotli 响应时忘记启用 unbrotli 可能会导致不支持 Brotli 的客户端出现问题。

错误配置缓冲区大小会导致内存开销增加或在解压缩期间性能下降。

忽视 unbrotli_force 的影响可能导致意外行为,即所有客户端都会收到解压后的响应,而不考虑它们的能力。

← 返回所有指令