将 AWS CloudFront 配置为可从 GoDaddy 域访问

问题描述

我在 GoDaddy 域名提供商中配置了一个域名。 我创建了可使用此 cloudfront 内部网址访问的 Angular 应用程序: xxxxxxxxx.cloudfront.net

问题是如何配置域以将 Web 请求正确重定向到托管在 AWS 上的这个地址。我联系了 GoDaddy 支持,他们给出了以下说明:

In order to make changes we need the nameservers and the nameservers will be provided by the host that is aws
Once you have the nameservers,Please open the dns page
You will see 2 nameservers that are for godaddy
Click on change option and then select I will use my own nameservers and then update the nameservers that will be provided.

在哪里可以看到 AWS Cloudfront 中使用的名称服务器?

解决方法

您需要先在 Route53 中设置域(例如 example.com),作为设置的一部分,您将获得 4 个名称服务器地址。您将 GoDaddy 的名称服务器更改为您的 AWS 名称服务器,如他们的支持所描述的那样,这将授权 Route53 托管您的 DNS。从那时起,您从 Route53 而非 GoDaddy 管理您的 DNS(但 GoDaddy 仍然是您的注册商)。

一旦您的域名服务器指向 route53,请按照 docs on creating an alias in route53

如果您想使用自己的域名,请使用 Amazon Route 53 创建 指向您的 CloudFront 分配的别名记录。别名 record 是 DNS 的 Route 53 扩展。它类似于 CNAME 记录, 但是您可以为根域创建别名记录,例如 example.com,以及子域,例如 www.example.com

当您更改 GoDaddy 上的域名服务器时,您设置的任何 DNS 将不再在互联网上可见,只有 Route53 中的内容。将您在 GoDaddy 中创建的任何记录转移到 Route53 更改您的名称服务器。忽略您未创建的任何 DNS 记录。

如果出现问题,您可以转到 GoDaddy 并将名称服务器重置为默认值,这将恢复以前的 DNS。

有一点值得一提 - TTL - 生存时间。如果 DNS 记录具有较高的 TTL(以秒为单位),则意味着当您进行更改时,每个人都需要最多 这段时间来获取更新。 TTL 将在 GoDaddy 中可见,或者您可以搜索“DNS dig”以查找读取 DNS 的在线工具。 NS 记录的 TTL 可能很高(几天、一周等) - 这将影响 Route53 需要多长时间才能完全接管您的 DNS。