为什么Heroku警告不要使用“裸”域名?


65

我在Heroku文档中浏览了此页面 ...

裸域(也称为裸域或顶点域)是通过A记录在DNS中配置的,并且在高可用性环境(例如,大型本地数据中心,云基础结构服务和Heroku等平台)中使用时,会对可用性产生严重影响。

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

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

(我注意到http://stackoverflow.com没问题,因此显然在这个问题上还有其他可行的选择。)


24
我运行www.yes-www.org,我批准了这个问题。
迈克尔·汉普顿

3
还有另一个问题:如果没有附加的Cookie,就无法提供静态资产(您不能仅为根域添加cookie; cookie必须用于子域或用于.domain.com(通配符,如果是根域,则使用))。您可以通过服务其他域中的资产来解决此问题(SE使用sstatic.net)来避免可怕的www子域。
Tom Marthenal

2
@MichaelHampton为什么我们不能在www.yes-www.org上发表评论?您为什么不在页面中提及ALIAS(或ANAME记录)?
Augustin Riedinger 2014年

这个问题已有6年历史了,主要是关于软件的限制。任何更新?
Michael Cole '18

Answers:


57

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

对于区域根,您必须使用一条A记录来指向该服务的特定IP地址。如果他们在路由方面遇到问题,或针对该特定地址的某种拒绝服务,他们将无法更新您的区域 A记录以动态指向其他IP;他们可以自己更新,这就是a CNAME允许他们做的。

这不适用于Stack Exchange,因为他们没有使用第三方平台。他们将是响应可用性问题的人,因此无论是a CNAME还是an A都对他们没有影响。


1
ALIAS(或ANAME)记录呢?
Augustin Riedinger 2014年

1
@AugustinRiedinger实际上不是DNS记录类型-它们是一种配置,某些DNS提供程序将处理抽象化,以动态检查A目标的当前记录,然后将其提供以响应对该名称的查询。它们本质上是为解决这个确切的问题而设计的,因此,它们绝对适合用于这种情况。
Shane Madden

1
因此,如果使用它们,heroku的可伸缩性警告将不再成立,对吗?还是使用它们有技术上的缺陷?
Augustin Riedinger 2014年

2
@AugustinRiedinger正确。技术上的缺点是实施难度大,因为“标准” DNS服务器如果没有定制就无法完成这种事情。只要您的提供程序的实现稳定,它就应该CNAME与子域上的设置一样好。
Shane Madden

13

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

但是,这是反对no-www概念的一种说法,因为它www.example.com可能有CNAME记录。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.