发布网友 发布时间:2022-04-30 17:53
共1个回答
热心网友 时间:2022-06-28 17:37
作为一个站长,一定希望自己网站的打开速度足够快,以免访问者因为失去耐心而关闭浏览器。 本文将介绍如何缩短网站域名的DNS 解析时间,来让访问者更快的打开你的网站。 一、域名的DNS 解析过程 将一个域名解析成IP 地址,主要由以下几个步骤: 1. 将域名解析请求发送给本地的域名服务器 (DNS Server) 。 2. 域名服务器 (DNS Server) 收到请求后,先查询本地缓存,如果有该域名的纪录项,则直接返回目标IP 地址。 3. 如果本地缓存中没有,则直接发送请求给根域名服务器 (Root Name Server) 。 根域名服务器 (Root Name Server) 返回给本地域名服务器 (DNS Server) 一个所查询域的主域名服务器 (gTLD Server) 地址。 4. 本地域名服务器 (DNS Server) 再向上一步返回的 TLD 服务器发送请求。 接受请求的 TLD 服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器 (Name Server) 的地址。 5. 正常情况下 Name Server 会有相应的记录,并返回给 DNS Server 。 6. 本地 DNS Server 根据域名的TTL 值,把返回的结果保存到缓存,同时将解析结果返回给客户机。 二、缩短域名的DNS 解析时间 知道了域名的DNS 解析过程,就可以采取相应的措施,缩短解析时间,我们所能影响和选择的方面主要包括缓存、本地DNS Server 和域名的Name Server。 1、增加域名的缓存命中率 如果访问者访问网站时,域名在本机或当地的DNS Server 缓存中,则可以大大加快该域名的解析时间。 以下方法可以增加域名在DNS Server 中的缓存命中率: 提高网站的访问量。 网站的访问量越高,意味着网站域名被请求解析的次数越多,则该域名被 DNS Server 缓存的几率就越大。 增加域名A 记录和CName 的TTL (Time-To-Live) 值。 TTL 就是一条域名解析记录在DNS Server 中的存留时间和过期时间。增大TTL 值可以让DNS Server 缓存该域名更长时间,增加缓存的命中率。 TTL 一般默认为一小时,可以根据实际情况设为一天甚至一周以上。 当然,如果你域名的IP 经常变化,则TTL 不应过大,否则各地的DNS Server 会暂时无法获得新的正确的IP 地址。 下图是两个网站采用相同服务器、相同IP、相同网页内容,不同的TTL 值在同一天内的监控结果。 图一:TTL 设为一小时 图二:TTL 设为一周 可以注意到,图二中域名DNS 解析所花的时间可以忽略不计,这就是域名A 记录 TTL 时间长,增加了缓存的命中率带来的加速效果。 2、选择更快的本地DNS Server 一般而言,我们无法决定用户使用何种DNS Server,大部分初级用户使用的是本地ISP 自动获取的DNS Server,部分用户则使用第三方DNS Server 比如Open DNS 或者Google DNS。 不过你可以建议你的用户使用Google DNS (8.8.8.8 和8.8.4.4),该DNS Server 会比电信或网通自动获取的DNS Server 快许多。 3、选择更快的域名Name Server 在域名的whois 信息中,我们可以看到域名的Name Server,不同的Name Server 有不同的域名管理面板用来管理A 记录和CName 等信息。 由于一般的站长无法在全世界建立Name Server 的镜像,所以我们只能选择离目标访客物理距离近的Name Server 以加快访客的解析速度。 比如你的网站主要浏览量来自中国,则你的Name Server 最好也在中国境内,最好是电信和网通双线的。如果你的网站主要浏览量来自美国,则你可以用 Godaddy 的Name Server。 不过近年来宫信步势大,大量域名都转移至了国外,而国内缺少免费、稳定的第三方Name Server,使得这个问题很难解决。Godaddy 的免费Name Server,国内解析起来实在很慢,也许我们可以期待无所不能的Google 将来提供免费的 Name Server 给我们。