Azure:将现有Windows Web App迁移至Linux(Docker)Web App并保留原URI
零停机迁移Azure Windows Web App到Linux Docker版并保留原默认域名
步骤1:准备Linux Web App并验证功能
- 确保你的Linux Docker Web App配置完成,用临时域名(比如
myservice-linux.azurewebsites.net)测试所有功能,保证和原Windows Web App完全一致。 - 确认Docker镜像稳定,数据库连接、依赖项等均正常工作。
步骤2:部署流量路由中间层(二选一)
方案A:Azure Front Door(推荐,支持HTTPS与丰富路由规则)
- 创建Front Door实例,配置后端池,将原Windows Web App和新Linux Web App都加入后端列表。
- 设置路由规则,初始状态下将所有流量转发至Windows Web App(通过优先级或权重设置)。
- 在Front Door的自定义域名设置中添加原默认域名
myservice.azurewebsites.net,通过Azure资源验证完成域名所有权确认。 - 等待10-30分钟配置生效,测试通过Front Door访问该域名是否正常指向原Windows App。
方案B:Azure Traffic Manager
- 创建Traffic Manager配置文件,路由方法选择「加权」或「优先级」。
- 添加两个端点:原Windows Web App(权重设为100)、Linux Web App(权重设为0),确保初始流量全流向Windows App。
- 测试Traffic Manager域名(比如
myservice.trafficmanager.net)是否正常指向原Windows App。
步骤3:切换流量到Linux Web App
- 若用Front Door:修改路由规则,将流量转发目标切换为Linux Web App,或调整后端优先级让Linux App成为主后端。
- 若用Traffic Manager:调整权重,将Linux Web App权重设为100,Windows App权重设为0。
- 等待配置生效后,测试
myservice.azurewebsites.net是否正常指向Linux Web App,验证所有核心功能(API、登录、数据交互等)正常。
步骤4:完成迁移收尾
- 确认流量完全切换后,在原Windows Web App的自定义域名设置中删除
myservice.azurewebsites.net的绑定。 - 将该域名直接绑定到Linux Web App,之后可选择删除Front Door/Traffic Manager实例,或保留作为流量管理工具。
关键注意事项
- 全程保持原Windows Web App运行,直到确认Linux App完全接管流量,避免停机。
- 迁移前务必覆盖所有功能测试,确保Linux App与原服务表现一致。
- 若使用HTTPS,提前为Linux Web App配置好SSL证书(Azure免费证书或自定义证书),避免切换后出现证书错误。
内容的提问来源于stack exchange,提问作者Laurens
相关产品推荐
相关产品推荐

