Herokubuild议避免裸露的域名logging。 需要帮助理解它

在他们的文档 Heroku谈论你为什么应该避免赤裸的领域,如果你依赖于IaaS或PaaS。

在ServerFault上也有一个存在的问题 ,但是它不处理我的查询。

我理解他们的解释。 我感到困惑的部分是ip的caching。 Heroku声称他们可以在他们的DNS设置中改变他们端点的IP地址,而且都是好的。 但是,不要大多数浏览器/代理/客户端缓​​存该IP? TTL值并不总是受到尊重。 这个IP传播的速度有多快? 请求仍然不会去旧的IP?

你可以使用一个CNAME,例如www.example.com,以便它指向magic-squirrel.herokuapp.com(或其他)。 magic-squirrel.herokuapp.com将parsing为IP Heroku分配给该端点的任何IP,例如,1.1.1.1。 如果Heroku需要做一些networking重新configuration,IP可以改变,但是magic-squirrel.herokuapp.com会更新为指向2.2.2.2。 http://www.example.com将在TTL到期后自然遵循。 在这种情况下,你不会因为Herokupipe理networking而造成服务中断。

不能使用example.com的CNAME,即裸域。 您将需要使用Alogging。 如上所述,您的应用程序正在magic-squirrel.herokuapp.com上运行,该logging为1.1.1.1的Alogging。 因为不能将CNAME作为该名称,所以必须为example.com创build一个Alogging以指向1.1.1.1。 过了一段时间,Heroku做了networkingconfiguration,现在magic-squirrel.herokuapp.com指向2.2.2.2。 你的example.com现在被神秘地破坏了。 您需要注意的是,magic-squirrel.herokuapp.com不再位于1.1.1.1上,并相应地更新您的DNS。

即使CNAME可能有很高的TTL,caching的值是别名,而不是别名后面的IP(或者至less应该是别名)。

因此,在CNAME上使用更高的TTL以利用caching时, CNAME的目标可以具有非常低的TTL以允许更频繁地更改,特别是允许在不触及自己的DNSlogging的情况下自动更改它。