使用 Route53 将 apex/root 域指向 Heroku 应用程序

使用 Route53 将 apex/root 域指向 Heroku 应用程序

这是我在其他地方看到讨论过的问题,但是这个问题并没有被明确说明是不可能的。

我想将 apex 域指向 heroku 应用程序(example.comexample.herokuapp.com

CNAME 似乎是不可能的,因为它们不允许在顶层(子域名可以)。

ALIAS 记录似乎是一种选择,尽管我不完全了解它们,或者它们是否是标准的。我们使用 AWS Route53 作为我们的 DNS 提供商,但 ALIAS 记录似乎只能用于特定的 Amazon 服务(s3 网站、负载均衡器等)。

那么,是否可以将顶点域指向 Heroku 应用程序?我唯一的选择是使用其他 DNS 提供商吗?

谢谢

编辑:我知道我可以将 CNAMEwww.example.com改为example.herokuapp.com,然后使用 ALIAS 记录和重定向的 S3 站点从 重定向example.comwww.example.com。但我们想要的恰恰相反,我们希望浏览器显示example.com

答案1

别名记录不是实际的 DNS 记录类型 - 它们是指向 Route 53 内其他记录的指针,因此别名记录的目标只能是 S3 存储桶、弹性负载均衡器、CloudFront 分发或A托管区域内其他相同类型的记录(例如记录)。Route 53 使用其内部数据库来查找目标并返回标准 DNS 响应。

因此,不可能直接将别名指向外部目的地。

如果您确实想将别名指向外部目标,则可以使用 CloudFront 间接实现,因为 CloudFront 接受主机名 (example.herokuapp.com) 作为将转发请求的源服务器的名称。它还允许您使用由 Amazon 证书管理器生成的 SSL 证书,并有选择地将不同的路径模式路由到不同的目标(例如,路由/images/*到 S3 存储桶)。如果您不想要,可以自定义或禁用 CloudFront 的缓存行为。

当然,这会产生请求和带宽的使用费,但会提供一些可能值得的额外功能,包括减轻您的 heroku 服务的负载(如果您可以从缓存中受益)。

但是,使用 www 主机名而不是裸域是有充分理由的,并且配置裸域以将传入请求重定向到 www,这可以通过多种不同方式完成。

相关内容