如何阻断GCP HTTP负载均衡器外部IP直接访问 仅允许域名访问
GCP负载均衡阻断IP直接访问配置方案
核心实现逻辑
GCP HTTP(S)负载均衡本身支持基于请求Host头的路由规则,无需引入额外第三方服务,也不需要额外启用其他GCP付费服务,仅通过负载均衡内置的URL Map配置即可实现需求。
具体配置步骤(适用HTTP(S)负载均衡)
- 进入你当前使用的HTTP(S)负载均衡配置页,找到对应的
URL Map配置项 - 在现有路由规则最顶部,新增一条优先级最高的主机匹配规则,主机匹配值填写负载均衡的公网IP(若绑定多个公网IP则全部加入规则)
- 为该规则配置两种处理逻辑二选一:
- 直接阻断访问:选择返回固定响应,状态码设置为
403 Forbidden,自定义响应内容可填写"Direct IP access not allowed" - 跳转至指定域名:选择重定向规则,重定向类型选
Permanent Redirect (301),主机重定向填写example.com,协议重定向选HTTPS,路径保留规则可根据需求选择保留原路径或替换为根路径
- 直接阻断访问:选择返回固定响应,状态码设置为
- 保存URL Map配置,等待负载均衡规则生效(通常1-2分钟即可全局生效)
特殊场景适配(适用TCP/UDP四层负载均衡)
如果当前使用的是四层TCP/UDP负载均衡,无法在负载均衡层识别HTTP Host头,需要在后端服务的Web服务层新增Host校验规则,Nginx配置示例如下:
server { listen 80 default_server; server_name _; # 匹配所有未明确绑定Host的请求,包含IP直接访问的请求 # 跳转逻辑 return 301 https://example.com$request_uri; # 若需直接阻断,替换上面的return行为为:return 403 "Direct IP access not allowed"; }
内容的提问来源于stack exchange,提问作者Alejandro Barone
相关产品推荐
相关产品推荐

