我们目前将stackoverflow.com的DNS
SOA record设置为以下内容:
primary name server = ns1.p19.dynect.net serial = 2009090909 refresh = 3600 (1 hour) retry = 600 (10 mins) expire = 604800 (7 days) default TTL = 60 (1 min)
对于像stackoverflow.com这样每天接收近1M的网页浏览量的网站,我们的刷新/重试/过期/默认TTL是否有更好的选择?
解决方法
网站的实际流量速率无关紧要.
所有这些设置(“默认TTL”除外)仅影响域的辅助DNS服务器轮询主DNS服务器以进行更新的频率.
如果您的区域不经常更改(我相信您的区域),那么“刷新”的值目前有点偏低.通常,主节点应该在每次更新时向每个辅助节点发送NOTIFY消息,此时辅助节点立即抓取区域文件.现在,“刷新/重试/过期”机制只是一个支持.
无论如何,您的DNS提供商可能会在不使用DNS的内置同步机制的情况下自动同步所有相关DNS服务器的更改,因此实际值可能无关紧要.
请注意,“默认TTL”字段不再意味着它所说的内容.使用$TTL指令设置实际默认TTL(至少在BIND中),并且仅在每条记录上没有设置显式TTL时使用.
“默认TTL”字段的含义在RFC 2308中已更改,它实际上是负缓存的提示.如果您的服务器返回否定响应(例如NXDOMAIN或NODATA),则远程服务器在再次尝试之前应等待多长时间.
目前的价值有点偏低,但保持原样并没有什么坏处.无论如何,它经常被忽略.