Azure负载均衡如何将流量定向到特定VM以完成站点更新测试?
Azure IIS站点负载均衡单实例流量定向升级方案
最优即时生效方案(无需修改Azure侧网络配置)
针对你当前使用Azure Load Balancer的场景,最快的实现方式是通过自定义健康探测规则+本地文件控制实现秒级流量切换:
- 先为负载均衡配置HTTP类型健康探测:
- 探测路径设置为
/health.html - 探测间隔设为1秒,不健康阈值设为1,超时时间设为1秒
- 探测路径设置为
- 每台VM的IIS站点根目录下提前放置返回200状态码的
health.html静态文件 - 需要将流量切走某台VM时,直接在目标VM上将
health.html重命名或修改为返回非200状态码,负载均衡会在1-2秒内识别到实例不健康,自动将所有流量切换到其他健康实例 - 升级验证完成后,恢复
health.html的正常配置,负载均衡同样会在1-2秒内恢复该实例的流量分发
该方案完全不需要修改NSG、后端池等Azure网络配置,所有操作都在VM本地执行,生效速度远高于NSG规则变更。
基于其他可选负载均衡产品的方案
Application Gateway 方案
如果你切换使用Application Gateway,可以直接用原生的加权轮询路由功能实现流量的精准控制:
- 后端HTTP设置中选择加权轮询路由算法
- 需要将100%流量定向到指定VM时,将目标VM的权重设为100,其余VM权重设为0即可
- 配置变更为秒级生效,还支持灰度流量分发(比如先切10%流量验证升级效果),更适配发布验证场景
蓝绿部署通用方案
不管使用Load Balancer还是Application Gateway,都可以通过双后端池的方式实现更规范的版本切换:
- 将两台VM分别加入两个独立的后端池
- 正常运行时负载均衡规则同时绑定两个后端池
- 升级时先解绑VM1所在的后端池,所有流量自动走VM2所在池,升级验证VM1
- 验证完成后解绑VM2所在的后端池,所有流量走VM1所在池,升级VM2
- 全部升级完成后重新绑定双池恢复双实例运行
该方案的配置变更生效时间在10秒以内,远快于NSG规则变更。
内容的提问来源于stack exchange,提问作者WinBoss
相关产品推荐
相关产品推荐

