使用区域外部负载均衡器与区域Internet NEG创建代理服务器时遇问题
区域外部LB+区域Internet NEG 503 "no healthy upstream" 问题排查与解决
核心问题原因
区域Internet NEG和全局Internet NEG的行为有本质区别:区域NEG仅支持FQDN作为后端目标,不允许直接配置IP地址。你之前用全局LB+全局NEG时可以直接指定IP,但切换到区域NEG后,直接指向IP会导致健康检查失败,触发503 no healthy upstream错误。
修复方案
1. 替换目标IP为FQDN
如果目标服务器有对应的FQDN,直接将区域Internet NEG的后端配置改为该FQDN。区域NEG会自动解析FQDN到目标IP,同时基于FQDN执行健康检查,确保上游状态被正确识别。
2. 配置静态出站IP(满足白名单需求)
要获取固定的出站IP用于主服务器白名单,按以下步骤操作:
- 在LB所在区域创建一个静态外部IP地址
- 进入LB的后端服务配置,找到出站IP设置,指定刚创建的静态IP作为出站地址(区域LB的出站IP必须与LB同区域)
- 确认出站规则已关联该静态IP,此后所有通过LB转发的请求都会使用这个固定IP对外发送
3. 校验健康检查配置
区域NEG的健康检查依赖FQDN,需确保:
- 健康检查的FQDN与目标服务器的FQDN完全一致
- 健康检查的端口、协议(HTTP/HTTPS)与目标服务的监听配置匹配
- 目标服务器允许LB所在区域的健康检查IP段访问(可通过
gcloud compute health-checks describe [健康检查名称]查看健康检查源IP范围)
替代方案(无FQDN场景)
如果目标服务器只有IP没有可用FQDN,可以:
- 在Cloud DNS中创建自定义A记录,将目标IP映射到一个私有FQDN(例如
target.internal.example.com),然后将区域NEG指向这个自定义FQDN - 若需保留IP目标,可切换回全局LB,但配置全局LB的静态出站IP(全局LB支持跨区域静态IP,需确保该IP在主服务器白名单范围内)
内容的提问来源于stack exchange,提问作者roughezzz
相关产品推荐
相关产品推荐

