我在 Heroku 文档中遇到了这个页面......
裸域,也称为裸域或顶点域,通过 A 记录在 DNS 中配置,并且在高可用性环境(例如大规模本地数据中心、云基础设施服务和 Heroku 等平台)中使用时具有严重的可用性影响。
为了获得最大的可扩展性和弹性,应用程序应避免使用裸域,而应仅依赖基于子域的主机名。
这里有人会说 Enterprise 吗?他们警告的“可用性影响”是什么?
(我注意到http://stackoverflow.com没有问题,所以显然在这个问题上有可行的替代哲学。)
他们在谈论的是,当您使用 a
CNAME
指向他们的服务时(这只能在子域上使用,而不是区域根目录 - 它不能与您的区域根目录所需的SOA
和记录共存),NS
他们可以更改自己的 DNS 记录以解决某种可用性问题。对于区域根,您必须使用
A
记录指向服务的特定 IP 地址。如果他们遇到路由问题,或针对该特定地址的某种拒绝服务,他们将无法更新您的区域A
记录以即时指向不同的 IP;不过,他们可以更新自己的,这就是 aCNAME
允许他们做的事情。这不适用于 Stack Exchange,因为他们没有使用第三方平台;他们将是响应可用性问题的人,因此无论是 a
CNAME
还是 anA
对他们来说都没有区别。作为@ShaneMadden 的回答的补充,一种解决方法是让第三方平台也管理您的 DNS 区域。例如,如果您使用 AWS 的Elastic Load Balancer服务及其Route 53 DNS 服务,您可以使用他们的自定义别名记录可靠地将区域顶点指向 ELB 实例,这允许他们更新您的 DNS 区域以响应可用性问题。
然而,这是反对无 www概念的论点,因为
www.example.com
可以有CNAME
记录。