GCP load-balancer配置的URL重写规则不持久、10分钟后自动失效
GCP负载均衡重定向/URL重写规则配置后10分钟自动失效
问题复现特征
- 在负载均衡编辑页的「Host and path rules」-「Advanced」面板配置涉及路径、主机、关联后端的重定向/URL重写规则后,规则可正常展示、生效,对应路径访问正常,但有效状态仅维持10分钟左右
- 配置完成5分钟内回到编辑页,所有规则正常存在且生效;10分钟后再打开编辑页,此前配置的规则完全消失,对应路径(如
mywebsite.io/welcome)无法访问 - 尝试通过控制台结合YAML文件配置规则始终失败,怀疑官方文档存在内容不准确问题
问题根因
这不是GCP平台侧bug,是控制台配置逻辑的高频踩坑点,遇到同类问题的开发者非常多:
- 高级配置面板内填写的规则默认是临时暂存状态,如果配置完高级规则后,没有回到Host and path rules的主配置页面,将对应主机、路径的路由目标从默认后端服务切换为你刚配置的高级规则集,等负载均衡配置完成全局同步(默认耗时5-15分钟),未绑定到主路由表的高级规则会被自动清理,和描述的10分钟失效的时间点完全吻合。
- YAML配置失败基本都是遗漏了必填关联逻辑:没有在
pathMatchers块中将编写的重写/重定向规则绑定到对应路径匹配器,也没有在hostRules块中将目标域名关联到对应pathMatcher,配置提交后要么被校验逻辑驳回,要么后续被默认规则覆盖。
正确配置方式
控制台配置流程
- 进入负载均衡编辑页,打开「Host and path rules」板块,先选择「Advanced host and path rule (URL redirect, URL rewrite)」模式
- 点击「Add host and path rule」,先填写需要匹配的主机名(如
mywebsite.io),不要直接选中默认后端服务 - 点击对应规则行的「Add path rule」,填写匹配路径(如
/welcome),路由动作按需选择「重定向客户端」或者「重写URL」,填写完对应参数 - 必做关键步骤:所有规则填写完成后,拉到页面最下方核对,确认配置规则对应的域名、路径没有指向默认后端服务,所有自定义路径都已经绑定到刚创建的重定向/重写动作
- 点击负载均衡编辑页最下方的「更新」按钮,等待配置全局同步(一般10分钟左右),同步过程中不要反复进入编辑页修改配置
- 同步完成后可执行
gcloud compute url-maps describe 你的负载均衡关联的URL映射名称命令,校验规则是否已经持久化写入
YAML配置核心结构参考
注意不要遗漏hostRules和pathMatchers的关联,配置片段示例:
name: your-lb-url-map defaultService: /compute/v1/projects/你的项目ID/global/backendServices/默认后端服务名 hostRules: - hosts: - mywebsite.io pathMatcher: welcome-matcher pathMatchers: - name: welcome-matcher defaultService: /compute/v1/projects/你的项目ID/global/backendServices/默认后端服务名 pathRules: - paths: - /welcome routeAction: urlRewrite: pathPrefixRewrite: /new-welcome # 若需要配置重定向,替换为redirectAction块即可 service: /compute/v1/projects/你的项目ID/global/backendServices/路径对应的后端服务名
配置完成后执行gcloud compute url-maps import 你的URL映射名称 --source=你的yaml文件本地路径 命令提交即可,不会出现规则自动丢失的问题。
内容的提问来源于stack exchange,提问作者Jay Cee
相关产品推荐
相关产品推荐

