然而,我觉得这可能不是最佳的.当然应该是A记录是48小时,CNAME是15分钟.如果发生故障,CNAME只会指向server-02.example.com. A记录(理论上应该在很长一段时间内非常愉快地缓存,因为我们使用CNAME作为切换器).
环顾互联网,我发现很多人的CNAME很长,A记录很短:
CNAME and A record have different TTLs. Which one will be cached?
这似乎与任何人想要的相反.问题是,DNS是否以我希望的方式工作,因为如果我需要快速切换服务器,CNAME请求TTL是重要的?
解决方法
>大多数管理员宁愿不为没有www前缀的网站名称密钥用户破坏他们的网站.
>对于那些不信任他们的webapp开发人员在example.com上持续使用www.example.com的管理员来说,这个问题是双重的. (提示:我们大多数人没有)
继续你的linked example,你要比较苹果和橘子.由于well-known apex CNAME problem,网络托管方案中的Apex DNS记录是一个巨大的痛苦.在这种情况下只有两个正确的选择:根据需要更改顶点A记录以将其指向有效的IP,或者您放弃具有顶点记录完全.两者之间的任何一切都是半生不熟的.
所有这些都与此有点不同:如果您依靠手动记录更改来处理服务的高可用性,那么您做错了. Web浏览器命中的IP地址应该是负载均衡器,任播地址,CDN或虚拟主机提供商,如果您自己的服务器场不能,则可以提供此高可用性.如果您确信使用它们的主要应用程序遵循RFC 6724指南(即最流行的Web浏览器),则多个地址记录也可以工作,但许多应用程序是惰性的,只需使用返回的第一个地址记录.
为了论证,让我们根据自己的优点来检查Google’s CNAME chain而不将其置于原始问题的上下文中.这看起来很熟悉,因为它是我原来答案的文字:
记录类型在这里是无关紧要的.如果需要经常更改记录,则应该具有非常低的TTL.如果它不需要经常更换,那么它不需要低TTL就可以使用你可以使用的任何东西.
没有人(谷歌除外)可以真正评论为什么谷歌希望ghs.l.google.com IN A的TTL低于指向它的CNAME记录.如果不了解更大的设计,你就无法得出任何结论,而设计决定了你的运动部件.