把域名指向新服务器已经两个小时,本地访问还是旧地址,换网络环境又能看到新地址。
这类报错背后常见的原因有几处,逐个排除就行。本地或运营商缓存还没到期;记录本身的生存时间设置得很长;权威解析还没有同步到所有节点。
直接查权威解析结果
dig +short @8.8.8.8 域名
接着查本地缓存剩余时间
dig 域名 | grep -A1 'ANSWER SECTION'
刷新本机解析缓存
systemd-resolve --flush-caches
末了用不同网络环境交叉验证
nslookup 域名 114.114.114.114
这次没动代码,只在配置和运行环境上找原因。
隔了一天再看,现象没变,说明不是偶发。
那几天正好在做别的变更,先把时间线对齐才敢动手。
改完先别撤,确认这几项。权威结果与本地解析一致,访问指向新服务器,业务验证通过。
这里还有个坑。切换前把生存时间调小能大幅缩短生效时间;临近切换时改解析,很容易被缓存拖住半天。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。