Azure不同路由前缀后端的流量分阶段迁移均衡方案咨询
微服务流量逐步迁移:Azure环境下路由前缀差异场景的解决方案
问题背景
我们正将微服务托管架构从子域名区分模式切换为路由前缀区分模式:
- 旧环境微服务根路径:
https://my-service.legacyhosting.com/ - 新环境对应微服务根路径:
https://api.modernhosting.com/my-service
需求是通过Azure前端组件按指定比例分流流量,逐步完成迁移,但Azure Front Door(含高级版)、Traffic Manager因无法在同一后端池/源组配置不同路由前缀,无法满足需求,现寻求Azure Load Balancer和App Gateway的可行方案。
推荐方案:Azure应用网关(Application Gateway)
应用网关支持HTTP路径改写、权重分流和灵活路由规则,完全适配该场景,以下是已验证的配置步骤:
1. 创建独立后端池
分别为新旧环境创建后端池:
- 旧环境后端池:添加
my-service.legacyhosting.com作为后端目标 - 新环境后端池:添加
api.modernhosting.com作为后端目标
2. 配置路径改写规则
针对两个后端池设置对应的路径改写逻辑:
- 旧环境:入口请求路径无需改写,直接转发至
https://my-service.legacyhosting.com/<原请求路径> - 新环境:将入口请求的根路径
/改写为/my-service/,即把https://<网关域名>/xxx转发至https://api.modernhosting.com/my-service/xxx
3. 设置权重分流路由规则
创建路由规则实现比例分流:
- 关联前端HTTPS端口(443)与两个后端池
- 为旧环境后端池设置初始权重(如80),新环境后端池设置剩余权重(如20)
- 后续可根据迁移进度逐步调整权重比例,实现流量平滑切换
4. 验证分流效果
- 发送多组测试请求至网关域名,检查请求是否按权重比例分发至新旧环境
- 通过应用网关日志确认路径改写和转发逻辑正常
Azure Load Balancer 适用性说明
Azure Load Balancer是4层(TCP/UDP)负载均衡器,不支持HTTP层面的路径改写,无法处理新旧环境的路由前缀差异问题,因此不推荐用于该场景。
内容的提问来源于stack exchange,提问作者Carson T
相关产品推荐
相关产品推荐

