可通过curl发送Accept-Encoding: br请求并检查响应头Content-Encoding是否为br来批量验证Nginx Brotli压缩启用状态;需准备含服务器地址的文件,运行指定bash脚本自动检测。

直接用 curl 发起带 Accept-Encoding: br 的请求,再检查响应头中是否含 content-encoding: br,就能批量验证 Nginx 是否正确启用了 Brotli 压缩。
确认目标服务器列表和端口
准备一个纯文本文件(如 servers.txt),每行一个地址,支持域名或 IP,可带端口:
192.168.1.100:8080
test.site.local
确保这些地址能被当前机器网络访问,且对应 Nginx 已配置 Brotli(brotli on;、brotli_types ... 等)。
编写检测脚本(bash)
保存为 check-brotli.sh,添加执行权限:chmod +x check-brotli.sh
脚本内容如下:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
while IFS= read -r url; do
[ -z "$url" ] && continue
# 自动补全 http:// 前缀
[[ $url != http://* ]] && [[ $url != https://* ]] && url="http://$url"
echo -n "[$url] → "
if curl -sI -H "Accept-Encoding: br" "$url" 2>/dev/null | grep -i "content-encoding.*br" > /dev/null; then
echo "✅ Brotli enabled"
else
echo "❌ Not serving Brotli"
fi
done
增强版:同时检查 gzip 和响应状态
若想更全面,可扩展脚本对比 Brotli/gzip,并过滤掉 4xx/5xx 响应:
- 用
curl -o /dev/null -w "%{http_code}"获取状态码,跳过非 2xx - 分别测试
Accept-Encoding: br和gzip,判断优先级是否符合预期 - 加
-m 5设置超时,避免卡死 - 用
LC_ALL=C避免 locale 导致grep失效
注意事项
Nginx 必须加载 ngx_http_brotli_filter_module(官方模块需编译启用,或使用 OpenResty / nginx-plus 等已集成版本)。
浏览器或客户端未发送 Accept-Encoding: br,Nginx 不会主动压缩;脚本中显式带上该头才能触发检测。
部分 CDN 或反向代理可能拦截或覆盖编码头,检测结果反映的是最终响应链路的输出,不一定是 Nginx 本机行为。

















