我们目前将我们的 DNS SOA 记录设置为 stackoverflow.com 的以下内容:
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 这样每天接收近 100 万次网页浏览的网站,我们的刷新/重试/过期/默认 TTL 是否有更好的选择?
到站点的实际流量率是无关紧要的。
所有这些设置(“默认 TTL”除外)仅影响域的辅助 DNS 服务器轮询主 DNS 服务器以获取更新的频率。
如果您的区域只是不经常更改(我相信您的),那么您的“刷新”值目前有点偏低。通常,
NOTIFY
只要有更新,主节点就应该向每个辅助节点发送一条消息,此时辅助节点会立即获取区域文件。如今,“刷新/重试/过期”机制只是对此的支持。无论如何,您的 DNS 提供商很可能会在不使用 DNS 的内置同步机制的情况下自动将更改自动同步到所有相关的 DNS 服务器,因此实际值可能无关紧要。
请注意,“默认 TTL”字段不再意味着它所说的内容。使用指令设置真正的默认 TTL(至少在 BIND 中)
$TTL
,并且仅在每个记录上没有设置显式 TTL 时使用。“默认 TTL”字段的含义在RFC 2308中有所更改,它实际上是对负缓存的提示。如果您的服务器返回否定响应(例如
NXDOMAIN
或NODATA
),则远程服务器在重试之前应该等待多长时间。当前值有点偏低,但保持原样没有害处。无论如何,它经常被忽略。
有趣的是,来自 dyn 家伙(我们的 DNS 主机)的 DNS 诊断页面..
http://dnscog.com/report/stackoverflow.com
.. 在 MINTTL 上这样说:
这在 SOA 刷新
http://www.intodns.com/stackoverflow.com上的另一个诊断页面没有提供任何真正的提示。
来自 Pingdom:http ://dnscheck.pingdom.com/