为什么 Heroku 会针对“裸”域名发出警告?

Agv*_*rth 66 domain-name-system cloud cloud-computing domain heroku

我在 Heroku 文档中遇到了这个页面......

裸域,也称为裸域或顶级域,是通过 A 记录在 DNS 中配置的,当用于高可用性环境(如大型本地数据中心、云基础设施服务和 Heroku 等平台)时,会产生严重的可用性影响。

为了获得最大的可扩展性和弹性,应用程序应避免裸域,而应仅依赖基于子域的主机名。

这里有人说企业吗?他们警告的“可用性影响”是什么?

(我注意到http://stackoverflow.com没有问题,所以显然在这个问题上有可行的替代哲学。)

Sha*_*den 58

他们正在谈论的是,当您使用 aCNAME指向他们的服务时(这只能在子域上,而不是区域根上 - 它不能与区域根上所需的SOANS记录共存),他们可以更改自己的 DNS 记录以解决某种可用性问题。

对于区域根,您必须使用A记录指向服务的特定 IP 地址。如果他们遇到路由问题,或对该特定地址的某种拒绝服务,他们将无法动态更新您区域的 A记录以指向不同的 IP;不过,他们可以更新自己的内容,而这正是 aCNAME允许他们做的事情。

这不适用于 Stack Exchange,因为他们没有使用第三方平台;他们将是响应可用性问题的人,因此无论是 aCNAME还是 anA对他们来说都没有区别。

  • @AugustinRiedinger 正确。技术缺陷在于实现难度,因为“标准”DNS 服务器如果不进行定制就无法完成这种事情。只要您的提供者的实现是稳定的,它就应该与子域上的“CNAME”设置一样好。 (2认同)

mgo*_*ven 13

作为@ShaneMadden 答案的补充,一种解决方法是让第三方平台也管理您的 DNS 区域。例如,如果您使用AWS的弹性负载均衡服务,并且他们的路线53 DNS服务,您可以可靠地使用其定制的ELB实例指向区顶点别名记录,这使得他们在应对可用性问题更新您的DNS区域。

然而,这是反对no-www概念的论据,因为www.example.com可以有CNAME记录。