如何配置Google Cloud负载均衡器不追加IP至X-Forwarded-For请求头
解决Google Cloud负载均衡器追加自身IP到X-Forwarded-For的问题
我来帮你搞定这个问题——Google Cloud的HTTP(S)负载均衡器默认确实会把自身IP追加到X-Forwarded-For请求头末尾,变成客户端IP, 负载均衡器IP的格式。你没找到相关配置是因为这个设置不在负载均衡器的主配置页,而是在它关联的后端服务里,具体操作步骤如下:
1. 找到目标后端服务
- 登录Google Cloud控制台,进入负载均衡页面,找到你正在使用的负载均衡器。
- 点击负载均衡器名称进入详情页,在“后端配置”区域找到关联的后端服务,点击服务名称进入配置界面。
2. 配置请求头转换规则
- 在后端服务配置页,滚动到高级配置板块,找到请求头转换选项,点击“编辑”按钮。
- 添加一条「设置头」规则:
- 头名称填写
X-Forwarded-For - 值选择使用变量
{client_ip}—— 这个变量代表的是客户端的原始IP地址,完全不包含负载均衡器的IP,用它来覆盖默认的追加行为。 - 确认规则设置后,点击“保存”。
- 头名称填写
3. 等待配置生效
配置保存后,GCP需要几分钟时间同步设置,之后你的后端服务收到的X-Forwarded-For头就只会包含客户端的原始IP了。
额外说明
- 如果你的负载均衡器是TCP/UDP类型的,那不用担心这个问题——这类工作在传输层的LB不会解析HTTP请求,自然也不会修改
X-Forwarded-For头。只有HTTP(S) LB才会有这个默认行为。 - 要是你需要更复杂的头处理逻辑,还可以在请求头转换里配置正则表达式提取,比如从原始的
X-Forwarded-For中截取第一个IP(也就是客户端IP),不过直接用{client_ip}变量是最简洁可靠的方式。
内容的提问来源于stack exchange,提问作者Rotem jackoby
相关产品推荐
相关产品推荐

