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

如何在GCP日志资源管理器记录自定义请求头并避免其被移除?

问题:自定义请求头经GCP负载均衡器后丢失,Cloud Run和LB日志均无法找到

我通过负载均衡器向Cloud Run发送请求,请求里的自定义请求头User-Email在Cloud Run和负载均衡器的日志里都找不到。我已经按照GCP官方指南配置了名为user-email的自定义头,但问题还是没解决。本地环境里后端能正常记录这个头,推测是被负载均衡器或其他GCP服务移除了,能不能禁用这个移除行为?

我用Postman和Node.js代码都试过发送请求,代码如下:

const response = await fetch(
        `${apiUrl}`, { // 部署在GCP上的接口地址
          headers: {
            "User-Email": "random@user.com" // 自定义请求头
          }
        }
      );
解决思路
  • 区分「添加头」和「转发头」配置:你之前操作的是给LB新增自定义头,不是转发客户端发来的头。要保留客户端的User-Email,需要在LB的后端服务配置中,找到「请求头处理」模块,添加「保留客户端请求头」规则,将User-Email(或小写user-email)加入保留列表。
  • 检查头名称的标准化处理:HTTP头本身大小写不敏感,但GCP LB会自动将头名标准化为小写形式(比如user-email)。你可以在Cloud Run的代码里尝试读取user-email这个键,或者在LB配置里统一头的大小写格式。
  • 验证Cloud Run的Ingress设置:如果Cloud Run的Ingress模式设为「内部」或「内部与负载均衡器」,要确认LB的IP在允许访问的范围内,同时排查VPC防火墙规则是否存在拦截请求头的情况。
  • 深挖LB日志细节:在Cloud Logging中筛选负载均衡器的日志,查看requestHeaders字段,确认客户端发送的User-Email是否真的到达了LB。如果日志里没有这个头,说明请求在到达LB前就被拦截(比如CDN、WAF或客户端代理)。
  • 检查默认头移除规则:GCP LB默认会移除部分敏感头,但User-Email不在默认移除列表中。若确认是LB移除的,可以在后端服务的「请求头处理」中,检查「移除请求头」规则,确保没有包含User-Email,如有则删除对应规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 10:17:31