如何在同一应用域名下同时运行旧版AngularJS与新版React前端?
方案可行性与实现方法
第二种方案完全可以实现,且更适合SaaS产品的平滑过渡场景,以下是结合你当前Azure技术栈的具体落地步骤:
1. 统一入口做路由分发
将原域名www.abcd.com的DNS解析切换到Azure Front Door(或Azure CDN Premium)作为统一流量入口,配置路由规则实现不同版本前端的流量转发:
- 新增路径规则:匹配
/v2/*前缀的所有请求,转发到新版React前端对应的CDN/容器化服务源站 - 保留默认规则:其余所有请求默认转发到原Azure App Service上的AngularJS旧前端源站
2. 实现版本切换功能
两个版本的前端分别添加切换按钮,无需额外开发复杂逻辑:
- 旧版AngularJS的切换按钮:点击后跳转至当前页面对应的
/v2/前缀路径,同步携带用户会话token实现免登跳转 - 新版React的切换按钮:点击后跳转至当前页面对应的无前缀路径,同样同步会话状态即可
3. API请求路由适配
配合你的微服务迁移计划,在统一流量入口层同步配置API路由规则,无需修改业务代码的调用逻辑:
- 旧版前端调用的
/api/*路径请求,默认转发到原Azure App Service的API服务 - 新版前端调用的
/v2/api/*路径请求,转发到新的微服务网关
额外优化建议
后续可以根据用户使用数据逐步调整默认路由规则,比如先给10%的新用户默认打开/v2前缀的新版前端,逐步扩大灰度范围,直到全量切新后再下线旧版服务,整个过程用户完全无感知,不需要更换访问地址。
内容的提问来源于stack exchange,提问作者sobby01
相关产品推荐
相关产品推荐

