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

GCP负载均衡器无法将自身IP访问重定向至域名如何排查解决

问题根因

出现这个现象的核心原因是你配置的HTTP转HTTPS规则加了Host头匹配约束,只有请求Host头为你配置的业务域名时才会触发重定向;当直接用HTTP访问LB公网IP时,请求Host头为IP地址,匹配不到重定向规则,就会命中URL Map的默认路由直接转发到后端服务,绕过跳转逻辑。

排查步骤
  • 进入GCP负载均衡控制台,找到80端口HTTP监听器关联的URL Map资源,查看所有路由规则的匹配条件、优先级和默认路由配置
  • 定位你配置的HTTPS重定向规则,检查匹配条件中是否存在Host 等于 你的业务域名的约束项
  • 核对规则优先级:确认重定向规则的优先级数值(数值越小优先级越高)是否高于指向后端服务的业务路由,避免因规则顺序错配导致请求提前命中后端
  • 本地发测试请求验证:执行curl -v http://<你的LB公网IP>,查看响应的实际返回状态,结合GCP LB返回的调试头确认请求命中的具体路由规则
修复方案
  • 调整HTTP监听器关联的URL Map配置:将默认路由直接设置为HTTPS永久重定向,移除重定向规则上的Host头匹配约束,确保所有走80端口进入的HTTP请求(无论Host是域名还是IP)默认触发跳转。如果你是用Terraform部署,核心配置片段参考:
resource "google_compute_url_map" "http_lb_urlmap" {
  name = "http-redirect-all"
  # 默认路由直接做HTTPS跳转,不做Host/路径匹配
  default_url_redirect {
    redirect_response_code = "MOVED_PERMANENTLY_DEFAULT"
    https_redirect         = true
    strip_query            = false
  }
}
  • 如果要彻底禁止IP直连访问,在HTTPS监听器的URL Map中新增一条最高优先级规则:匹配Host头为LB公网IP的所有请求,直接返回403/404状态码,仅放行Host头为业务域名的请求到后端服务
  • 配置完成后等待5-10分钟,等GCP全球边缘节点同步完规则后再做验证:分别测试HTTP访问IP、HTTP访问域名两个场景,确认所有HTTP请求都正常触发HTTPS跳转,无直接透传到后端的情况
同类问题踩坑经验
  • 大部分用Terraform部署LB的用户踩这个坑,都是因为把重定向规则配置成了带域名、路径匹配的自定义路由,忘了修改HTTP监听器的默认路由指向,才会出现仅域名访问生效跳转的问题
  • GCP外部HTTP(S) LB的路由匹配逻辑是从高优先级到低优先级依次匹配,所有未命中自定义规则的请求都会走默认路由,只要默认路由指向业务后端,就会出现非预期的请求透传
  • 如果你已经配置了Cloud Armor安全策略,也可以直接在策略中新增规则,拦截所有Host头不等于你业务域名的请求,从边缘层直接阻断IP直连类的非法访问,不需要额外调整URL Map规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:30:51