跳转至

unbrotli: 为不支持 Brotli 的客户端解压 Brotli 编码的响应

安装

您可以在任何基于 RHEL 的发行版中安装此模块,包括但不限于:

  • RedHat Enterprise Linux 7、8、9 和 10
  • CentOS 7、8、9
  • AlmaLinux 8、9
  • Rocky Linux 8、9
  • Amazon Linux 2 和 Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-unbrotli
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-unbrotli

通过在 /etc/nginx/nginx.conf 的顶部添加以下内容来启用模块:

load_module modules/ngx_http_unbrotli_filter_module.so;

本文档描述了 nginx-module-unbrotli v0.0.2,于 2024 年 12 月 18 日发布。


ngx_unbrotli 是一个过滤模块,用于为不支持 Brotli 的客户端解压以 Brotli 编码的响应(Content-Encoding: br)。通过以 Brotli 格式存储响应,您可以节省存储和 I/O 成本,而该模块确保无法处理 Brotli 的客户端仍然能够接收适当的解压内容。

示例配置

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

配置指令

unbrotli

  • 语法: unbrotli on | off;
  • 默认值: off
  • 上下文: http, server, location

启用或禁用对不支持 Brotli 的客户端的 Brotli 压缩(Content-Encoding: br)响应的解压。当 unbrotli 被启用时,服务器会检查客户端的能力(类似于 gzip 处理的方式)以确定是否需要解压。

unbrotli_force

  • 语法: unbrotli_force on | off;
  • 默认值: off
  • 上下文: http, server, location

强制解压 Brotli 压缩的响应,即使客户端表示支持 Brotli。当 unbrotli_forceon 时,所有 Brotli 编码的响应在发送给客户端之前都会被解压,无论客户端的 Accept-Encoding 头如何。

unbrotli_buffers

  • 语法: unbrotli_buffers number size;
  • 默认值: 取决于系统页面大小,通常为: unbrotli_buffers 32 4k;unbrotli_buffers 16 8k;
  • 上下文: http, server, location

设置用于解压 Brotli 响应的缓冲区数量和大小。通常,大小等于一个内存页面(4 KB 或 8 KB,取决于平台)。增加这些缓冲区的数量或大小可以提高大响应的性能,但会增加内存使用。

GitHub

您可以在 nginx-module-unbrotli 的 GitHub 仓库 中找到有关此模块的其他配置提示和文档。