更改 DNS 后,网站在某些浏览器中显示错误的服务器

更改 DNS 后,网站在某些浏览器中显示错误的服务器

我最近将一个域名转移到了一个新的注册商,并在 A 记录中将其指向了一个新的服务器。有些电脑显示正确的服务器,但有些电脑却显示旧服务器,这令人担忧。我不认为这是浏览器缓存问题,因为即使是从未访问过该网站的电脑也会显示旧页面。

我使用一些在线检查器检查了 DNS 传播,它们似乎显示了正确的 IP。

什么样的事情可能导致这种行为?我能做些什么来纠正它?

答案1

“最近”是一个模糊的术语。如果旧记录的 TTL 为 86400,那么您可以预期 DNS 解析器最多需要 24 小时才能使该记录过期。如果“最近”的意思是“在过去一天内”,那么一切可能都按预期运行。

由于您还更改了注册商,因此除了 A 记录之外,可能还会缓存其他记录,例如您的 NS 记录和父级的胶水记录。这些记录的 TTL 通常更长,为两天、一周甚至十天。

某些 DNS 解析器缓存记录的时间超过 TTL 允许的时间。百度蜘蛛使用的就是一个例子。我曾看到它们在 TTL 过期三周后访问旧 IP 地址。如果您使用的 DNS 解析器出现这种情况,除非您更改使用的 DNS 解析器,否则您可能会长时间无法使用旧网站。

您可以使用 检查缓存了哪些记录以及它们在特定 DNS 解析器上过期前还剩多长时间dig。这是检查 Google 公共 DNS 解析器的示例:

$ dig @8.8.8.8 example.com

; <<>> DiG 9.6-ESV-R4-P3 <<>> @8.8.8.8 example.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21902
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;example.com.           IN  A

;; ANSWER SECTION:
example.com.        18820   IN  A   93.184.216.119

;; Query time: 8 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Oct  3 12:45:19 2013
;; MSG SIZE  rcvd: 45

域名后面答案部分的数字是此解析器将继续缓存此结果的时间。您还可以检查 NS 记录:

$ dig @8.8.4.4 example.com NS

; <<>> DiG 9.6-ESV-R4-P3 <<>> @8.8.4.4 example.com NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60519
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;example.com.           IN  NS

;; ANSWER SECTION:
example.com.        6121    IN  NS  b.iana-servers.net.
example.com.        6121    IN  NS  a.iana-servers.net.

;; Query time: 7 msec
;; SERVER: 8.8.4.4#53(8.8.4.4)
;; WHEN: Thu Oct  3 12:48:19 2013
;; MSG SIZE  rcvd: 77

答案2

DNS 缓存。编程不当 - 因此某些浏览器缓存旧页面的时间比您计划的要长得多。新服务器的“缺点”在于它无法正确处理 IMS(If Modified SInce)请求,尽管浏览器可以正确请求。

基本上就是这样。您必须检查这些机器,但结果要么是某些 DNS 仍在缓存(有些 DNS 的缓存时间比您的 TTL 长),要么是浏览器没有询问服务器。或者服务器说由于文件系统上的时间戳错误,页面没有更改。

相关内容