Nginx启用Brotli压缩必须先编译集成ngx_brotli模块并验证(nginx -V | grep brotli),再在http块中配置brotli on、comp_level、types等指令,且需HTTPS环境、brotli_static off,并与gzip共存实现兼容性降级。

Linux 下 Nginx 启用 Brotli 压缩,不是改几行配置就能生效的事——必须先确认模块已编译进 Nginx,再在 http 块中正确开启并限定范围,否则 brotli on 会被完全忽略。
确认 Nginx 已内置 ngx_brotli 模块
执行命令验证:
-
nginx -V 2>&1 | grep -i brotli—— 有输出才说明模块存在 -
curl -I -H "Accept-Encoding: br" https://yoursite.com/test.js—— 响应头含Content-Encoding: br才算真正启用 - 注意:HTTP 站点下浏览器不会发送
Accept-Encoding: br,必须走 HTTPS 才会协商 Brotli
在 nginx.conf 的 http 块中添加压缩配置
打开 /www/server/nginx/conf/nginx.conf(宝塔路径)或对应主配置文件,在 http { ... } 大括号内顶部位置添加:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
brotli on;—— 必须显式开启,不写等于没开 -
brotli_comp_level 6;—— 推荐 4–6;设为 11 会导致响应明显变慢 -
brotli_min_length 1024;—— 小于 1KB 不压缩,避免 CPU 白耗(默认仅 20 字节,太低) -
brotli_types text/plain text/css application/javascript application/json text/html image/svg+xml;—— text/css 和 application/javascript 必须手动写入,漏掉就不会压 CSS/JS -
brotli_static off;—— 关键!设为on会跳过动态压缩,只查 .br 文件
让 Brotli 与 Gzip 安全共存
两者可同时启用,浏览器自动按 Accept-Encoding 优先级选编码:
- Gzip 配置保留在原位置,例如:
gzip on; gzip_types ... - Brotli 优先级天然更高,只要响应头带
br,现代浏览器(Chrome/Firefox/Edge/Safari 11+)就会用它 - 老旧浏览器没
br头,自动回落到 Gzip,无需额外判断逻辑
重载并验证是否生效
配置保存后执行:
-
nginx -t检查语法 -
nginx -s reload重载配置 - 用 curl 测试真实响应:
curl -I -H "Accept-Encoding: br" https://yoursite.com/style.css,看到Content-Encoding: br即成功 - 若仍返回
gzip或无Content-Encoding,大概率是brotli_types缺了text/css,或配置误写在server块里而非http块

















