我有一个已部署到 Elastic Beanstalk 的多租户应用程序。每个租户都有一个不同的子域,他们可以从该子域访问应用程序。部署到 Elastic Beanstalk 后,我能够从提供的 Elastic Beanstalk URL 访问该应用程序,但添加子域会导致 404。
我做的第二件事是在 Route 53 上购买一个域,并设置一个托管区域以指向托管在 Elastic Beanstalk 上的应用程序。我读了几组关于如何将域或子域指向 Elastic Beanstalk 实例的说明,但到目前为止,没有任何效果。以下是我尝试过的方法:
- 为域设置一个 A 记录,以指向单个 Elastic Beanstalk 实例的弹性 IP。
- 为子域设置 A 记录,以指向单个 Elastic Beanstalk 实例的弹性 IP。
- 为子域设置 CNAME 记录,以指向我启动应用程序时提供的 Elastic Beanstalk URL。
- 为子域设置 CNAME 记录以指向单个 Elastic Beanstalk 实例的公共 DNS 条目。
每次我尝试访问该应用程序时,DNS 都无法解析。我可以 ping 我的域名,它会解析为一个我不认识的 IP 地址,但除此之外什么都没有。
nslookup sub1.domainqa.com. 8.8.8.8
返回
*** google-public-dns-a.google.com 找不到 admin.cscoastqa.com。:不存在的域
如何将位于 Route 53 上的域的多个子域指向同一个 Elastic Beanstalk 应用程序?
答案1
事实证明,我遇到的问题是由于我删除了原来的托管区域并创建了一个新的托管区域。新托管区域使用的名称服务器与分配给我的域的名称服务器不同。为了解决这个问题,我必须将创建新托管区域时设置的名称服务器分配给域。短暂等待后,一切开始正常。
尽管我对三个子域名的设置不同,但它们都开始工作了。