我拥有一个域
example.com
,并且希望在该域的子域 subdomain.example.com
上的 S3 存储桶中托管一个静态网站。
我可以通过 S3 静态网站端点和 CloudFront 域端点查看该网站,但当我转到子域时则无法查看该网站。
我有一个名为
subdomain.example.com
的 S3 存储桶,其中包含一个 index.html
文件。它是一个可公开访问的存储桶,当我转到存储桶属性时,我可以在“静态网站托管”下看到一个链接 http://subdomain.example.com.s3-website.eu-west-2.amazonaws.com
。单击此链接可以让我查看该网站。
我为此站点配置了一个 CloudFront 发行版,配置如下。 在“备用域名”下,我有
subdomain.example.com
,当我转到 CloudFront 域名时,dXXXXXXXXXXXX.cloudfront.net
,我可以查看该站点。这让我相信 Route53 方面存在一些问题。
我之前已在 Route53 中注册了域名
example.com
,它具有名称服务器:
ns-1.awsdns-1.co.uk
,ns-2.awsdns-2.com
,ns-3.awsdns-3.org
,ns-4.awsdns-4.net
。
我确保 example.com
的托管区域具有相同的名称服务器。我为
subdomain.example.com
创建了一个托管区域,它具有以下名称服务器:
ns-5.awsdns-5.co.uk
,ns-6.awsdns-6.com
,ns-7.awsdns-7.org
,ns-8.awsdns-8.net
.然后,我将 NS 记录添加到
example.com
的托管区域中,目的是将流量路由到 subdomain.example.uk
的名称服务器:
subdomain.example.uk
ns-5.awsdns-5.co.uk
、ns-6.awsdns-6.com
、ns-7.awsdns-7.org
、ns-8.awsdns-8.net
最后,我在
subdomain.example.com
的托管区域中添加了 A 和 AAAA 记录,目的是将流量路由到 CloudFront 分配:
subdomain.example.uk
我希望当我访问
subdomain.example.com
时我会看到我的网站,但这并没有发生。
我尝试等待一个多小时,因为 CloudFront 最多可能需要 25 分钟。 我尝试清除浏览器中的缓存/使用不同的设备。 经过研究,常见的解决方案似乎是验证域的托管区域是否包含指向子域的名称服务器的 NS 记录,并验证别名记录中引用了该分发。
我已阅读过诸如此 CNAME 指南 和 此 CloudFront 指南 之类的指南,但我相信我已按照描述配置了所有内容,或者看不到我缺少的内容。 我遇到了与 this Question 类似的问题,但当我在开发人员工具中查看“网络”选项卡时,我没有收到访问被拒绝错误,而是收到
NS_ERROR_UKNOWN_HOST
。
可能值得注意的是,我将 CloudFront 配置为将 HTTP 请求重定向到 HTTPS,并为
*.subdomain.example.com
和 subdomain.example.com
创建了公共证书。创建此记录时,CNAME 记录也被添加到 subdomain.example.com
。
我尝试更改注册域的名称服务器以匹配子域托管区域的名称服务器,但它不起作用,所以我将其放置了 8 个多小时,然后发现它正在工作。将名称服务器更改回原始名称服务器以匹配我的域托管区域并等待 8 个多小时后,它按预期工作。
看来我只是需要等待更长的时间。