Loading... ## 前言 最近我的一些网站包括一些博客都出现了第一次打开很慢,再次打开正常的问题,严重的时候敲了回车就像没反应一样,同时遇到某个APP第一次打开加载也慢的问题,本着打破砂锅问到底的精神,决定研究下这个问题。 ## 正文 ### 可能的原因 1. 服务器缓存导致 2. DNS解析导致 3. 其他原因 ### 排查 1. 先来排查下服务器缓存,在我关闭服务器缓存过后第一次打开依旧很慢,初步估计不是缓存导致。 2. 为了排查DNS解析问题使用到了以下命(Windows10下),61.128.128.68 是重庆电信的 DNS ```powershell nslookup myelf.club 114.114.114.114 nslookup myelf.club 61.128.128.68 ``` 输出: ```powershell C:\Users\14470>nslookup myelf.club 114.114.114.114 服务器: public1.114dns.com Address: 114.114.114.114 非权威应答: 名称: myelf.club Address: 60.205.212.238 C:\Users\14470>nslookup myelf.club 61.128.128.68 服务器: UnKnown Address: 61.128.128.68 非权威应答: DNS request timed out. timeout was 2 seconds. 名称: myelf.club Address: 60.205.212.238 ``` 很明显,使用自动获取到的重庆电信的 DNS 服务器解析速度并不理想,有时候甚至直接超时。重庆电信DNS背锅 3. 其他原因暂时没找到 ### 解决办法 1. 对于APP来说,可以使用 HTTPDNS 服务来解决。其原理就是通过 `http://x.x.x.x/{accountid}/d?host=myelf.club` 这样一个 http 请求来获取服务器的ip,从而绕过 DNS 解析服务。 获得 IP 后,发送请求就可以直接通过 IP 而不是之前的域名了,但是要将请求头的 HOST 字段设置为之前的域名,这样才能正常。 当然你也可以直接使用你服务器的 IP ,但并不推荐这样,原因自己想想。 2. 网页端的解决办法就只能是自己修改本地的 DNS 服务器了。 推荐设置为 `114.114.114.114` 或者 `8.8.8.8` 当然,也可以选择氪金,选择最贵的域名解析服务,来提高解析速度。 Last modification:January 8th, 2021 at 05:05 pm © 允许规范转载 Support If you think my article is useful to you, please feel free to appreciate ×Close Appreciate the author Sweeping payments
gjo