唯一有效验证方式是用curl -I -H "Accept-Encoding: br"请求并检查响应头是否含Content-Encoding: br和Vary: Accept-Encoding;Nginx需已编译ngx_brotli模块、配置brotli on及精准brotli_types,且仅HTTPS下生效。

Nginx Hosting
通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。
下载
<p>直接用 curl 检查响应头是否包含 <strong>Brotli</strong> 压缩即可,无需复杂逻辑。关键看 <code>Content-Encoding: br</code> 是否存在,且服务端实际启用了 Brotli(Nginx 需加载模块并正确配置)。</p>
<H3>确认 Nginx 已编译并启用 Brotli 模块</H3>
<p>运行以下命令检查模块是否可用:</p>
<ul>
<li><code>nginx -V 2>&1 | grep -o with-brotli</code> —— 输出 <code>with-brotli</code> 表示编译时已加入</li>
<li><code>nginx -t</code> 确保配置无语法错误</li>
<li>若报错 <code>unknown directive "brotli"</code>,说明模块未加载或配置写错位置(必须在 <code>http</code> 或 <code>server</code> 块内)</li>
</ul>
<H3>检查 Nginx 配置中 Brotli 关键参数</H3>
<p>确保以下指令出现在生效的配置块中(如 <code>/etc/nginx/nginx.conf</code> 或站点 conf):</p>
<ul>
<li><code>brotli on;</code> —— 必须开启,否则不压缩</li>
<li><code>brotli_types text/plain text/css application/javascript application/json application/xml+rss text/xml;</code> —— 至少包含你请求的资源类型(如 JS/CSS/JSON)</li>
<li><code>brotli_static on;</code>(可选)—— 若用预压缩的 <code>.br</code> 文件</li>
<li>注意:<code>brotli</code> 指令不能放在 <code>location / {}</code> 内,仅支持 <code>http</code>、<code>server</code>、<code>location</code>(部分版本),推荐放 <code>server</code> 块</li>
</ul>
<H3>用 curl 一键检测真实响应头</H3>
<p>执行以下单行命令,模拟带 <code>br</code> 编码能力的请求:</p>
<pre><code>curl -I -H "Accept-Encoding: br" https://your-domain.com/test.js 2>/dev/null | grep -i "content-encoding\|vary"</code></pre>
<ul>
<li>若输出含 <code>Content-Encoding: br</code>,说明 Brotli 压缩生效</li>
<li>若输出 <code>Vary: Accept-Encoding</code>,说明服务端正确声明了编码协商机制</li>
<li>若返回 <code>Content-Encoding: gzip</code> 或无该头,说明 Brotli 未触发(可能是 MIME 类型不匹配、客户端不支持、或配置未生效)</li>
<li>加 <code>-v</code> 可看详细请求/响应过程,确认请求头确实带 <code>Accept-Encoding: br</code></li>
</ul>
<H3>常见失败原因速查</H3>
<p>快速排除典型问题:</p>
<ul>
<li>浏览器或 curl 默认不发 <code>br</code>,必须手动加 <code>-H "Accept-Encoding: br"</code></li>
<li>Nginx 版本太低(< 1.19.0)或未使用 <a href="https://github.com/google/ngx_brotli">google/ngx_brotli</a> 第三方模块</li>
<li>配置 reload 失败(<code>nginx -s reload</code> 后没报错 ≠ 配置已生效,需 <code>ps aux | grep nginx</code> 确认主进程已更新)</li>
<li>CDN 或反向代理(如 Cloudflare)拦截/覆盖了响应头,绕过 CDN 直连 Nginx IP 测试</li>
</ul>
<p>不复杂但容易忽略:Brotli 生效依赖“客户端声明支持 + 服务端配置匹配 + 资源类型命中 + 模块真正加载”,四者缺一不可。</p>