Amazon web services 在不使用CNAME的情况下将子域从Route53指向CloudFront

Amazon web services 在不使用CNAME的情况下将子域从Route53指向CloudFront,amazon-web-services,amazon-route53,Amazon Web Services,Amazon Route53,我有一个子域(dev.example.com),需要将它指向我的cloudfront发行版(xyz.cloudfront.net)。我做了以下步骤 1) 创建了cloudfront发行版。创建云前端分发时,未在Cname字段中指定任何内容 2) 在Route53中创建了一个带有“A”记录的别名记录,并将dev.example.com指向xyz.cloudfront.net 但这种设置不起作用。只有在cloudfront发行版中指定cname字段时,它才起作用 有什么办法让它工作吗 你可以用 专用

我有一个子域(dev.example.com),需要将它指向我的cloudfront发行版(xyz.cloudfront.net)。我做了以下步骤

1) 创建了cloudfront发行版。创建云前端分发时,未在Cname字段中指定任何内容

2) 在Route53中创建了一个带有“A”记录的别名记录,并将dev.example.com指向xyz.cloudfront.net

但这种设置不起作用。只有在cloudfront发行版中指定cname字段时,它才起作用

有什么办法让它工作吗

你可以用

专用IP自定义SSL功能

在Cloudfront POP的专用IP地址将花费您600美元

更多细节

拥有专用IP后,可以在DNS中创建指向这些IP地址的记录

Cloudfront基于SNI(服务器名称指示)工作,它需要一个CNAME来将您的发行版映射到它


希望有帮助。

*.CloudFront.net
URL以外的任何位置访问CloudFront发行版时,必须指定CNAME。即使您使用的是
A
记录

您正在Route 53中创建一个
别名
记录。即使您没有创建
CNAME
记录,也必须在发行版的
CNAME
字段中指定DNS条目
dev.example.com

否则,CloudFront将不知道您请求的分发内容


另一种选择是使用专用IP地址,但这将花费您600美元。

除非您只计划使用CloudFront域名,否则必须包含一个或多个自定义域名,例如dev.example.com,如果希望CloudFront为这些域提供服务,请在“备用域名”框中。CloudFront在其配置中需要所谓的CNAME条目(备用域名),以便将传入请求与分发关联,因此,它们必须是全局唯一的

但是,对于与单个子域冲突的通配符,有一个例外。。。他们没有

如果您使用的是子域,应该可以通过如下两种发行版来绕过CloudFront对备用域名分配的限制:

blue:  dev.example.com
green: *.example.com
将dev.example.com的DNS记录指向绿色的CloudFront端点。(不要超过我…)

您会发现,尽管进行了DNS设置,blue端将处理dev.example.com请求,因为CloudFront实际上不知道或不关心请求是如何路由到它的——它使用SNI和
主机
头来选择正确的分发。无论中间路由使用哪个DNS记录,
dev.example.com
的请求都将匹配蓝色

要将流量切换为绿色,请从蓝色中删除备用域名,绿色的通配符将自动开始承载流量。无需更改DNS

这是记录在案的行为:

如果备用域名已存在于另一个CloudFront发行版中,即使您的AWS帐户拥有另一个发行版,您也无法向CloudFront发行版添加备用域名

但是,您可以添加通配符备用域名,如*.example.com,其中包括(与)非通配符备用域名,如www.example.com。重叠的域名可以在相同的发行版中,也可以在不同的发行版中,只要这两个发行版都是使用相同的AWS帐户创建的。(增加重点)


在DNS术语中,
A
记录表示域或子域指向IPv4地址,而
CNAME
则指向另一个域或子域。
别名
记录是由AWS“创建”的,它允许您将区域顶点(顶级域,
example.com
)指向另一个域或子域-换句话说,它相当于
CNAME
,但特定于顶点。创建它是因为DNS规范/标准不支持apex的
CNAME
s-有关别名的详细信息,请参阅。@jweyrich。他正在使用别名记录。要创建别名记录,请从类型A开始,然后启用别名。他说的是CloudFront设置中的备用域名(CNAMEs)。谢谢,实际上我创建了2个CloudFront发行版来支持蓝绿色部署。我想要一种在route53级别在两个发行版之间切换的方法。如果我在cloudfront中更新了CNAME,那么每次我在蓝色和绿色cloudfront发行版之间切换时,更新都会花费很多时间。关于如何解决这个问题有什么想法吗?是的,在CNAME字段中输入两个名称。CloudFront不关心源代码是否与CNAME匹配(S3除外)。还可以使用所有域名通过ACM创建SSL证书,并启用SSL。@jweyrich。对于内部AWS服务,您使用别名A记录,因为路由53在动态更改时在内部跟踪目标的IP地址。如果目标在AWS之外或不支持ALIAS,那么您将使用CNAME。谢谢Matt,实际上我创建了2个cloudfront发行版来支持蓝绿色部署。我想要一种在route53级别在两个发行版之间切换的方法。如果我在cloudfront中更新了CNAME,那么每次我在蓝色和绿色cloudfront发行版之间切换时,更新都会花费很多时间。关于如何解决这个问题有什么想法吗?这是CloudFront发行版的一个已知问题。多个发行版无法共享一个CNAME。因此,您需要在蓝绿色部署中找到一种方法来使用不同的CNAME,或者忍受延迟。或者,在蓝绿色部署中,不要交换分发。相反,只需交换原点。好的。我会尝试一下,但我看不到在