首页 文章

将子域名从Route53指向CloudFront而不使用CNAME

提问于
浏览
0

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

1)创建了 Cloud 端分发 . 在创建 Cloud 前端分发时,请勿在Cname字段中指定任何内容 .

2)在Route53中创建一个带有'A'记录的Alias记录,并将dev.example.com指向xyz.cloudfront.net .

但这种设置不起作用 . 仅当我在cloudfront分配中指定cname字段时,它才有效 .

任何想法让这个工作?

4 回答

  • 2

    除非您只打算使用CloudFront域名,否则如果您希望CloudFront为这些域提供服务,则必须在“备用域名”框中包含一个或多个自定义域名,例如dev.example.com .

  • 2

    访问CloudFront分配时,除了 *.cloudfront.net URL之外,您必须指定CNAME . 即使您使用 A 记录 .

    您正在Route 53中创建 ALIAS 记录 . 即使您没有创建 CNAME 记录,也必须在分发的 CNAME 字段中指定DNS条目 dev.example.com .

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

    另一种方法是使用专用IP地址,但这将花费您600美元 .

  • -2

    CloudFront在其配置顺序中需要所谓的CNAME条目(备用域名),以将传入请求与分发相关联,因此,它们必须是全局唯一的 .

    但是,对于看起来与单个子域冲突的通配符有一个例外......它们没有 .

    如果您正在使用子域,则应该可以通过配置这样的两个分发来解决备用域名分配的CloudFront限制:

    blue:  dev.example.com
    green: *.example.com
    

    将dev.example.com的DNS记录指向 green 的CloudFront endpoints . (并且不要超越我......)

    你会发现,尽管DNS的设置,那么 blue 边将处理dev.example.com请求,因为CloudFront的,实际上并不知道或不关心的请求如何路由到它 - 它使用SNI和 Host 头选择正确的分配 . 无论哪条DNS记录用于中间路由, dev.example.com 的请求都将匹配蓝色 .

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

    这是记录在案的行为:

    如果备用域名已存在于另一个CloudFront分配中,则无法将备用域名添加到CloudFront分配,即使您的AWS账户拥有其他分配也是如此 . 但是,您可以添加通配符备用域名,例如* .example.com,其中包含(与其重叠)非通配符备用域名,例如www.example.com . 只要两个分发都是使用相同的AWS账户创建的,重叠域名可以位于同一分布中,也可以位于不同的分布中 . (重点补充)http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CNAMEs.html#alternate-domain-names-restrictions

  • 0

    你可以这样做,

    专用IP自定义SSL功能

    Cloudfront POP的专用IP地址需要600美元 .

    更多细节here

    获得专用IP后,即可在DNS中创建指向这些IP地址的A记录 .

    Cloudfront基于SNI(服务器名称指示)工作,需要CNAME将您的分发映射到 .

    希望能帮助到你 .

相关问题