双域名并行访问AWS EKS部署的Rails应用潜在问题咨询
双域名并行过渡期风险排查与注意事项
双域名同时指向同一套Rails应用的方案本身不存在架构层面的硬阻塞,但是在EKS+Rails的技术栈下,有几个高频踩坑点需要提前配置到位,否则会出现零散的访问异常:
Rails 应用层配置检查项
- 首先处理
config.hosts白名单:Rails 6及以上版本默认开启Host头攻击防护,必须在生产环境配置中同时加入新旧两个域名的授权,否则新域名访问会直接抛出Host拦截错误。不要为了省事直接配置*通配,会绕过安全防护。 - 校验所有绝对链接生成逻辑:排查代码中是否存在硬编码旧域名的逻辑,重点检查邮件模板(密码重置、交易通知等带跳转链接的场景)、文件上传返回的资源访问地址、路由辅助方法生成绝对路径的逻辑,避免用户在新域名访问时被跳回旧域名。
- 同步更新第三方平台配置:所有对接的第三方服务(支付、OAuth登录、短信回调、Webhook推送等),都要提前把新域名加入回调地址白名单,否则新域名下触发的第三方请求会因为来源校验失败报错。
- 会话Cookie适配:默认Rails的会话Cookie是和当前访问域名绑定的,用户从旧域名切换到新域名时会触发重新登录。如果业务要求无感切换,可以调整Cookie的domain配置为兼容新旧域名的匹配规则,等迁移完成后再收紧配置。
EKS Ingress 与AWS基础设施层检查项
- 提前配置SSL证书:需要提前为新域名申请ACM证书,可以选择同时挂载新旧两个独立证书到Ingress监听器,也可以申请包含新旧两个域名SAN字段的多域名证书,避免新域名访问时出现证书不可信的浏览器报错。
- 核对Ingress路由规则:确保
ingress.yml中同时配置新旧两个域名的host匹配规则,统一指向同一个后端Service,不要漏配导致新域名访问返回404。如果使用AWS ALB Ingress Controller,要注意健康检查规则不要绑定单一域名host,避免健康检查失败导致后端端点被摘除。 - 检查访问控制规则:核对WAF规则、安全组、自定义鉴权中间件中是否存在基于域名的访问限制,避免新域名被拦截。
过渡期运维注意事项
- 新域名上线初期不要开启强制HSTS,避免证书配置异常时浏览器强制拦截无法快速回退。
- 如果站点面向公网可被搜索引擎抓取,过渡期给页面添加指向新域名地址的canonical标签,避免双域名内容重复导致SEO降权。
- 过渡期内通过应用日志、Ingress访问日志统计旧域名的流量占比,等流量基本切到新域名后再上线301重定向规则,重定向规则上线前先在测试环境验证跳转逻辑,避免规则写错导致旧域名访问全量故障。
以上配置全部校验到位的话,3周的双域名并行期不会有稳定性问题。
内容的提问来源于stack exchange,提问作者opensource-developer
相关产品推荐
相关产品推荐

