![CloudFlare CDN 和 Amazon S3 上具有 root 权限的静态站点](https://linux22.com/image/802093/CloudFlare%20CDN%20%E5%92%8C%20Amazon%20S3%20%E4%B8%8A%E5%85%B7%E6%9C%89%20root%20%E6%9D%83%E9%99%90%E7%9A%84%E9%9D%99%E6%80%81%E7%AB%99%E7%82%B9.png)
我已经设置了一个 S3 存储桶来托管我的静态站点。
现在我试图用 CloudFlare 来解决这个问题,但是在 CloudFlare 的 DNS 管理器中为根域添加 CNAME 条目时出现以下警告:
CNAME example.com example.com.s3-website-us-east-1.amazonaws.com
DNS 规范不允许根域 CNAME 记录。较旧的递归程序和邮件程序可能不遵循此 CNAME。如果您计划将此记录用作 MX 或 SRV 目标,您可能需要将其更改为 A 记录。
我找到的示例展示了使用子域名(即 images.example.com perhttps://support.cloudflare.com/entries/22077268-How-do-I-use-CloudFlare-with-Amazon-s-S3-Service-),但我有兴趣完全从根域托管该网站。
现在一切似乎都正常……域名设置了 Google Apps MX 记录 - 我可以忽略 CloudFlare 的警告吗?如果能够将根域设置为 A 记录,我会感觉更舒服,但我不确定如何实现这一点。
答案1
当您明天不再收到电子邮件时,您就会知道忽略此警告是不安全的。
CNAME 替换全部其他资源记录,因此它会覆盖 SOA 记录、MX 记录以及您可能为该区域定义的任何其他记录。这就是为什么强烈建议不要这样做。(以及为什么提供商建议您不是优先使用裸域名而非www。)
如果您使用 Route 53,他们有一个变通方法可以实现这一点(尽管在幕后很丑陋和肮脏)。听起来 CloudFlare 也有类似的变通方法。它可能同样肮脏,但您应该能够做到。
答案2
考虑到 CloudFlare 现已启用 CNAME 扁平化,它现在应该可以正常工作。
您可以在这里查看更多:http://blog.cloudflare.com/introducing-cname-flattening-rfc-compatible-cnames-at-a-domains-root