最近给网站搬了家,用的是景安的国内主机,主机的网速也不差,站点也优化过,但是打开网站和页面的时候总是反应一会,然后再打开。起初以为是主机或者程序的问题,昨晚偶尔用了一个网站速度测试工具,发现网站的加载时间大部分用在了域名解析的时间上。
几乎所有人都忽略了决定网站访问稳定性和速度的一个重要因素:DNS速度,糟糕的DNS解析速度可能让你的网站在别人的网站完全打开的时候还没完成域名解析,或者浏览器直接返回无法显示网站的提示。
怎么办?修改域名记录的TTL值!
什么是域名的TTL值?
TTL(Time-To-Live),就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指 定的NS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请 求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
TTL值设置的应用:
一 增大TTL值,以节约域名解析时间,给网站访问加速,提升访问的稳定性。
一般情况下,域名的各种记录是极少更改的,很可能几个月、几年内都不会有什么变化。我们完全可以增大域名记录的TTL值让记录在各地DNS服务器中缓 存的时间加长,这样在更长的一段时间内,我们访问这个网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而直接从缓存中返回域名 解析记录。
国内和国际上很多平台的TTL值都是以秒为单位的,很多的默认值都是3600,也就是默认缓存1小时,这个值实在有点小了,难道会有人一个小时就改一次域名记录吗?你可以根据自己的需要把这个值适当的扩大,例如要缓存一天。
最好的TTL值是设置成1周,设置成更大的值可能会有不必要的麻烦,例如当你要更换空间时,这些旧的记录要很久才过期并被更新。
一个访问量很小的企业网站,如果域名解析的TTL值是3600秒,访客当地的DNS在没有人访问该域名时,是不会向DNS解析服务器发送请求并缓存到 本地的,如果有访客第一次访问该网站,访客接入的当地的DNS会先向域名DNS解析服务器发送请求,然后缓存在本地,最后才解析这个网站域名给访客。这期 间,当域名DNS解析服务器访问量过高时,返回的时间就很长甚至中断返回查询结果,访客此时就无法网站了。3600秒以后,这个问题还会再次出现。
所以保守的做法是设置TTL为一周,对于访问量较少的企业网站而言,不再会为频频打不开网站而烦恼了。
转载请注明:小康的个人主页~ » 网站速度慢,不一定是主机和程序的问题!域名解析速度慢!