You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在AWS为Elastic Beanstalk各环境配置独立子域名CNAME?

多子域名映射到Elastic Beanstalk不同环境:可行!附故障排查方案

当然可行!这是Elastic Beanstalk(EB)的常规用法之一——很多团队都会把生产(www)、预发布(staging)、演示(demo)这类环境,通过不同子域名绑定到同一EB应用的不同环境上。你已经走对了第一步(配置CNAME记录),www能正常访问说明整体逻辑没问题,剩下两个子域名出问题大概率是细节配置没跟上,咱们一步步排查:

排查步骤

1. 先确认CNAME解析是否真的生效

别光看路由53的配置,实际验证解析结果才靠谱:

  • 用命令行工具nslookup staging.example.com或者dig demo.example.com,检查返回的目标地址是不是和对应EB环境控制台里的环境域名完全一致(比如staging-your-app.elasticbeanstalk.com)。
  • 如果解析结果不对,先检查路由53的CNAME记录是否写错了,有没有多余的空格或者拼写错误。

2. 直接测试EB环境的原始域名

跳过自定义域名,直接访问EB环境自带的elasticbeanstalk.com域名(比如staging-your-app.elasticbeanstalk.com):

  • 如果这个原始域名都打不开,那问题出在EB环境本身:检查环境是否部署成功、安全组是否开放了80/443端口、IAM角色权限是否正常。
  • 如果原始域名能正常访问,那问题就聚焦在自定义域名和EB的绑定关系上。

3. 关键一步:给EB环境绑定对应子域名

很多人会漏掉这个操作——EB需要明确知道哪个自定义域名对应哪个环境:

  • 登录AWS控制台,进入staging环境的配置页面,找到「域名」选项,点击「添加自定义域名」,输入staging.example.com并确认。
  • 对demo环境重复同样的操作,绑定demo.example.com。
  • 这一步完成后,EB才会把对应子域名的请求转发到正确的环境里。

4. HTTPS场景:检查SSL证书覆盖范围

如果你用HTTPS访问,那必须确保:

  • 你的SSL证书的「主题备用名称(SAN)」包含所有三个子域名(比如*.example.com通配符,或者明确列出www.example.com、staging.example.com、demo.example.com)。
  • 每个EB环境的负载均衡器(如果用的是负载均衡器环境类型)都配置了这个证书,并且监听了443端口。

5. 等待DNS缓存刷新

如果刚修改完CNAME记录,可能存在DNS缓存的问题:

  • 路由53默认的TTL是300秒(5分钟),可以适当缩短TTL(比如60秒)来加速生效。
  • 用dig +trace staging.example.com命令追踪解析路径,确认最新的CNAME记录已经被全球DNS节点更新。

总结

按照上面的步骤排查,基本能解决问题。核心逻辑就是:CNAME解析指向正确的EB环境域名 + EB环境绑定对应的自定义域名 + (HTTPS场景)SSL证书覆盖所有子域名,三者缺一不可。

内容的提问来源于stack exchange,提问作者tim_xyz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:44:25