是否可以根据 Nginx 中的请求标头动态设置 Brotli 压缩级别?

问题描述

我使用 brotli 进行响应压缩,并使用 nginx-brotli moduleNginx 中执行此操作。

我想根据请求标头动态设置 brotli_comp_level 的值,以便慢速网络上的客户端可以请求更高的压缩率。我怎样才能做到这一点?

我试过无济于事:

http {
  ...

  brotli on;
  brotli_comp_level 6;
  brotli_types *;

  if ($http_x_brotli_high_quality) {
    brotli_comp_level 11;
  }
}

解决方法

NGINX Plus 的库存/打包 Brotli 模块无法实现。

但是,您可以自定义编译(不推荐用于生产)并集成以下 pull request

或者,如果预算允许,使用 nginx-module-brotli 中的 NGINX Extras 模块包,它将上述拉取请求集成到包中。此选项需要 CentOS/RHEL 机器并使用 GetPageSpeed 维护付费订阅。