指向 Elastic Beanstalk 环境的外部子域

Posted

技术标签:

【中文标题】指向 Elastic Beanstalk 环境的外部子域【英文标题】:External subdomain pointing to Elastic Beanstalk environment 【发布时间】:2021-06-28 09:35:16 【问题描述】:

在这种特殊情况下,我有一个位于不同提供商(AWS 除外)的域和一个 Elastic Beanstalk (EB) 应用程序,该应用程序具有多个环境,每个环境都使用不同的资源。

通过域提供商,我创建了一个名为 - test.tiagoperes.eu 的子域。

我想要的是,通过转到这个子域,任何用户都可以看到当前在名为 production 的 EB 环境中找到的内容,当前在其中访问(app-prod 不是真实名称,但遵循类似的模式)

app-prod.eba-xepr49ar.us-east-1.elasticbeanstalk.com

这是一个包含 Auto Scaling 组、目标组和负载均衡器的环境。

必须做什么?


注意:有a similar question,但它非常笼统(因此答案多种多样)。此外,this question 用于基本 EB 环境。另外,我看过this guide。

【问题讨论】:

通常你会设置一个 CNAME 记录。名称可能不同,具体取决于您的域名提供商。 @Marcin 你的评论把我带到了this link,这反过来又导致我分享的指南 没错。如果您不使用 Route53,则无需修改 AWS。 @Marcin 欢迎您回答并编辑以包含其他认为相关的部分。还没有测试过 谢谢。答案已添加。很高兴它解决了:-) 【参考方案1】:

基于 cmets。

OP 使用外部 DNS 提供商(不是 AWS Route53)。因此,应该为子域创建 CNAME 记录或外部提供商中的等效记录。记录应解析为 on ElasticBeanstaslk 的默认名称。

由于 DNS 提供商在 AWS 外部,无需在 AWS 上做任何事情

更详细地说,在域的 DNS 管理器中,为子域创建 CNAME 记录。例如,如果 EB 子域是:app-prod.eba-xepr49ar.us-east-1.elasticbeanstalk.com,那么我们应该有一个 app-prod.eba-xepr49ar.us-east-1.elasticbeanstalk.com 的 CNAME 条目。根据Mark B

我们绝不应该使用 Elastic Beanstalk (EB) 直接指向服务器/IP 地址,它应该始终使用 Elastic Beanstalk 提供的 DNS 端点。

根据我们使用的 DNS 主机,可以自己添加 CNAME 记录,也可能需要主机为我们添加。作为示例,如何在 Namecheap 和 GoDaddy 中执行此操作在其文档中进行了说明:

How to Create a CNAME Record For Your Domain Add a CNAME record

【讨论】:

以上是关于指向 Elastic Beanstalk 环境的外部子域的主要内容,如果未能解决你的问题,请参考以下文章

AWS 中的 Elastic Beanstalk 子域 CNAME 记录在哪里,以及如何向其中添加 SSL?

没有负载均衡器的 Elastic Beanstalk 别名

AWS Elastic Beanstalk 外部 DNS 未正确路由

如何将域指向路径或路由? AWS Elastic BeanStalk 和 Route 53

Elastic Beanstalk ALB 上的多个 SSL 证书

将亚马逊 AWS Elastic Beanstalk 指向现有的 EC2