You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Firebase托管的Cloud Run服务启用HTTP压缩(gzip/deflate/brotli)

Firebase Hosting 对 Cloud Run 响应的内容压缩支持

Firebase Hosting完全支持对通过 rewrite 转发到 Cloud Run 的响应内容进行自动压缩,实现你提到的类似 Kubernetes Ingress 前端压缩的效果,不需要 Cloud Run 服务本身处理压缩逻辑。

配置方法

你只需要在 firebase.json 的 hosting 区块中添加 compress: true 配置,就能启用 Hosting 的自动压缩功能,覆盖包括 Cloud Run 转发请求在内的所有符合条件的内容:

{
  "hosting": {
    "source": ".",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "frameworksBackend": {
      "region": "us-central1"
    },
    "compress": true, // 启用全局自动压缩
    "rewrites": [
      {
        "source": "/play/**",
        "run": {
          "serviceId": "play",
          "region": "us-central1",
          "pinTag": true
        }
      }
    ]
  }
}

关键注意事项

  • 客户端请求头要求:浏览器默认会发送 Accept-Encoding: gzip, deflate 请求头,Hosting 只有检测到这个头时才会返回压缩后的内容。
  • 响应 Content-Type 正确性:Cloud Run 服务必须返回正确的 Content-Type 头(比如 JavaScript 文件返回 text/javascript,CSS 返回 text/css),Hosting 会根据这个判断内容是否适合压缩。
  • 内容大小阈值:Hosting 不会对小于 1KB 的内容进行压缩,这是为了避免压缩开销大于收益。
  • 部署生效:修改配置后,需要运行 firebase deploy --only hosting 让配置生效。

验证方法

你可以通过浏览器开发者工具的「网络」面板查看请求:

  • 检查响应头是否包含 Content-Encoding: gzip(或 br 表示 Brotli 压缩)
  • 对比响应的「Size」(传输大小)和「Content-Length」(原始大小),确认已压缩。

内容的提问来源于stack exchange,提问作者Rodrigo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 12:01:17