我在存储桶client1.examplecorp.com
内的S3中有一个静态网站,其中包含相应的R53记录client1.examplecorp.com. A ALIAS s3-website-us-east-1.amazonaws.com.
我希望我的客户端(client1.com)webadmin为子域quotes.client1.com
创建一个dns记录,该记录将指向AWS(client1.com不使用R53)。
它应该指向client1.examplecorp.com
吗?
或直接在S3存储桶端点?
这个概念是,最终用户只会看到quotes.client1.com
子域名而不知道client1.examplecorp.com
。
我希望我描述得足够好......
我已阅读有关Setting Up a Static Website Using a Custom Domain,Virtual Hosting of Buckets以及this SO post的AWS文档。
我觉得我在寻找的是How to redirect domains using Amazon Web Services。
我只是不明白客户注册商如何通过添加4个名称服务器将特定子域(quotes.client1.com)的流量重定向到client1.examplecorp.com。
此外,重定向是否仅影响此子域或整个client1.com。
最后,它会完全透明吗?这意味着,client1.examplecorp.com
将不会显示给最终用户?
我对解释它没有坚定的把握,所以请耐心等待。
答案 0 :(得分:5)
以下是两种可能的解决方案:
在这些示例中,客户端的主域名是example.com。
选项1:
创建一个名称与所需主机名相同的存储桶,并让客户端创建指向存储桶的网站端点的CNAME记录。
水桶名称:
quotes.example.com
网站端点(假设us-east-1区域):
quotes.example.com.s3-website-us-east-1.amazonaws.com.
客户端DNS:
quotes.example.com. CNAME quotes.example.com.s3-website-us-east-1.example.com.
客户端不需要将Route 53用于其DNS,但桶名称必须与它们指向存储桶的主机名完全匹配,因为这就是S3的工作方式。
选项2:
通过CloudFront发送流量。在这种情况下,存储桶名称无关紧要,因为CloudFront会将其转换为正确的存储桶名称。
水桶名称:
example-bucket
网站端点:
example-bucket.s3-website-us-east-1.amazonaws.com
新CloudFront分配系统分配的主机名:
djozxyqkexample.cloudfront.net
CloudFront Origin(执行不>从下拉列表中选择存储桶名称,键入S3网站主机名,如S3控制台中所示):
example-bucket.s3-website-us-east-1.amazonaws.com
CloudFront备用域名:
quotes.example.com
客户端创建DNS CNAME
quotes.example.com. CNAME djozxyqkexample.cloudfront.net.
此解决方案也不要求客户端使用Route 53,并且 - 重要的是 - 存储桶名称不需要与主机名匹配 - 主机名只需配置为CloudFront备用域名,以便CloudFront在到达时识别Host:
标题。
如果要为多个站点重复使用相同的存储桶,可以向CloudFront备用域名设置添加更多主机名,也可以创建指向同一存储桶的多个分发。
另请注意,在S3之前使用CloudFront实际上是免费的,因为当您使用CloudFront时,S3将不再向您收取带宽 - 相反,CloudFront将以CloudFront速率向您收取带宽,这通常会略低于那个S3率。
在上述两种情况下,客户端都不需要使用Route 53,因为它们的主机名不是区域apex主机名(“裸域”)。要将裸域与任一解决方案一起使用,需要使用Route 53,但这不适用于此。
答案 1 :(得分:0)
不幸的是,我认为这是不可能的。我假设您在这种情况下拥有公司域名。
你要使用client1.corporation.com,你必须使用Route 53,对吧? 您也无法在其他NameServer中配置某些DNS记录并执行相同操作。
同样,对于您使用quotes.client1.com指向S3存储桶,您还需要请求客户端使用Route 53。
希望有所帮助 干杯!