我有一个子域名(dev.example.com),我需要将它指向我的cloudfront发行版(xyz.cloudfront.net) . 我做了以下步骤
1)创建了 Cloud 端分发 . 在创建 Cloud 前端分发时,请勿在Cname字段中指定任何内容 .
2)在Route53中创建一个带有'A'记录的Alias记录,并将dev.example.com指向xyz.cloudfront.net .
但这种设置不起作用 . 仅当我在cloudfront分配中指定cname字段时,它才有效 .
任何想法让这个工作?
4 回答
除非您只打算使用CloudFront域名,否则如果您希望CloudFront为这些域提供服务,则必须在“备用域名”框中包含一个或多个自定义域名,例如dev.example.com .
访问CloudFront分配时,除了
*.cloudfront.net
URL之外,您必须指定CNAME . 即使您使用A
记录 .您正在Route 53中创建
ALIAS
记录 . 即使您没有创建CNAME
记录,也必须在分发的CNAME
字段中指定DNS条目dev.example.com
.否则,CloudFront将不知道您请求的分发 .
另一种方法是使用专用IP地址,但这将花费您600美元 .
CloudFront在其配置顺序中需要所谓的CNAME条目(备用域名),以将传入请求与分发相关联,因此,它们必须是全局唯一的 .
但是,对于看起来与单个子域冲突的通配符有一个例外......它们没有 .
如果您正在使用子域,则应该可以通过配置这样的两个分发来解决备用域名分配的CloudFront限制:
将dev.example.com的DNS记录指向 green 的CloudFront endpoints . (并且不要超越我......)
你会发现,尽管DNS的设置,那么 blue 边将处理dev.example.com请求,因为CloudFront的,实际上并不知道或不关心的请求如何路由到它 - 它使用SNI和
Host
头选择正确的分配 . 无论哪条DNS记录用于中间路由,dev.example.com
的请求都将匹配蓝色 .要将流量切换为绿色,请从蓝色中删除备用域名,绿色的通配符将自动开始传输流量 . 无需更改DNS .
这是记录在案的行为:
你可以这样做,
Cloudfront POP的专用IP地址需要600美元 .
更多细节here
获得专用IP后,即可在DNS中创建指向这些IP地址的A记录 .
Cloudfront基于SNI(服务器名称指示)工作,需要CNAME将您的分发映射到 .
希望能帮助到你 .