用户打开网站的整个流程中,DNS解析时第一环,当用户输入域名并敲回车后,windows系统调用DNS client,寻找到用户配置或者自动分配的DNS IP,之后就开始整个解析过程。

    DNS解析,变快有意义吗?
    有,呵呵,很多小型网站, DNS解析时间都接近 0.5s,甚至我见过一个网站,需要 1.2s才可以解析出结果的。这是个非常令人吃惊的数据,因为对于一般网站打开时间超过 8s用户即将放弃访问,而对于电子商务网站, 4s就是用户忍耐极限。而一般经过优化的小型网站, DNS解析时间都可以控制在 200MS左右,而带宽在 100M左右的网站,经过优化, DNS解析时间可以控制在 50-100ms
 
     如何优化呢?
 
    首先 利用好 TTL,因为要尽量多的让用户直接从运营商的 DNS缓存中拿到 A记录,这样才能保证最快,但是也要保证,当你的服务器出问题时,需要尽快的切换,所以,这个 TTL设置也是有一些情况需要综合研究的。
1、 你肯定清楚,自己的服务器有没有多台或者备份。如无备份,那服务器宕机时,你只能生抗,所以, TTL时间对于你来说是越长越好,因为 TTL短的目的是服务器发生问题时,可以及时切换,这个对于没有备份的网站基本利用不上。所以,你的 TTL设置就是越长越好,当然了,也不能无限长,一般设置 TTL 3600即可。
2、 如有备份或者多台服务器,会发生由于服务器宕机需要及时做切换, TTL时间越短,切换越及时,但是 TTL时间越短,也就意味着运营商 DNS经常缓存不住,一般用户,设置为 TTL 600即可,如果对及时切换,要求特别苛刻的网站,设置 TTL 120即可。
 
     其次寻找 足够热的域名解析商。很多网站,都是自己做一个域名解析服务器,看着自己掌控方便了,但是大错特错,因为你的域名解析服务器,基本上都不被缓存,每次从根服务器询问一圈,绕了大半个地球,才给出最后的结果,那自然会效果很差。所以,要寻找足够热的域名解析商。什么叫热,就是被访问的次数特别多。足够热的话,域名解析服务器的 A记录基本上会被各地运营商的 DNS一直缓存着。如何判断域名解析商够不够热呢?其实,也很简单,看看这个域名解析商的客户够不够多,他们客户网站够不够热门,访问的人够不够多。
也给大家推荐一个更好的方法,就是找 CDN厂商做域名解析。因为 CDN厂商服务的客户,有很多是很热很大用户群很多的,所以,这些 CDN厂商的域名解析服务器,服务效果那是岗岗的好。
 
    最后是进阶技巧 --- 巧用CNAME。不少网站拥有者,在同样的一个或多个服务器上运营很多小网站;或者自己运营一个网站,但是拆分了很多个二级域名。针对这些情况,严重需要善用 CNAME,把所有的这些小网站的域名或者二级域名, cname到一个自己定义的统一域名。然后设置这个 cname对应的 TTL时间足够长。这样的话,保证网站的第一次解析,可以直接从运营商的 DNS缓存中拿到,也就是直接拿到 cname后的记录。然后,第二个 cname记录,再设置一个相对合理的 TTL值。通过这样,变相加热了第二级域名,通过加热的第二级和缓存时间足够长的第一级,最大化的优化 DNS解析时间。该技巧,一定要确保,最后 A记录得到的 IP,可以服务这些原始域名。
    例子:
    www.abc.com.  7200 IN  CNAME  hot.abc.com.
    hot.abc.com.   600  IN  A       127.0.0.1