Azure应用网关:如何实现无停机切换公网IP?
Azure应用网关无停机切换公网IP方案解析
关于多公网IP的支持
Azure应用网关(v1/v2 SKU)仅支持关联单个公网IP地址,这是产品架构层面的硬性限制,无法临时配置第二个公网IP,没有绕过的方法。
直接替换IP+更新DNS的问题
直接替换应用网关的公网IP,或者直接更新DNS记录指向新IP,必然会因为DNS缓存产生短暂中断——包括客户端本地缓存、递归DNS服务器的缓存,中断时长取决于DNS记录的TTL值。如果TTL设置较长(比如默认3600秒),部分用户可能会在几十分钟内无法访问业务,完全不符合无停机的要求。
双网关部署方案的可行性
这是最稳妥的无停机切换方案,操作步骤如下:
- 基于现有应用网关的配置,快速克隆部署一个全新的应用网关,绑定目标公网IP
- 验证新网关的业务可用性(确保后端池、路由规则、SSL证书等配置完全一致)
- 先将原有DNS记录的TTL调整为较短值(比如30秒),等待原有TTL过期后,将DNS记录切换到新网关的公网IP
- 确认业务流量完全迁移到新网关后,再删除旧的应用网关
更简便的替代方案
1. 借助Azure流量管理器实现平滑迁移
这是相对高效的无停机方案:
- 先将业务DNS记录指向Azure流量管理器的域名
- 将新旧两个应用网关的公网IP分别添加为流量管理器的端点,初始设置让所有流量走旧网关
- 部署并验证新网关后,逐步调整端点权重(比如从100:0逐步调整到0:100),实现流量平滑迁移
- 流量完全迁移完成后,删除旧网关的端点,按需移除流量管理器
这种方式无需频繁修改DNS记录,还能支持灰度发布式的流量迁移,彻底避免中断。
2. 弹性公网IP快速替换(仅适用于可接受极短中断的场景)
如果业务能容忍几秒钟的极短中断,可以直接给应用网关更换弹性公网IP:
- 解绑旧的弹性公网IP,绑定新的弹性公网IP
- 立即更新DNS记录指向新IP
这种方案操作最简单,但无法完全避免中断,仅适合对中断敏感度极低的场景。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

