问题背景:
业务架构升级,需对域名A进行DNS切换,指向新服务器。但是调用方客户A死活不生效,流量好几天之后还在老服务器上。
问题排查
通过和调用方沟通,确认了域名没有问题,他们是使用Nginx作为反向代理服务器请求的,然后通过ping的方式也证明了服务器的DNS确实生效了。那么可以肯定的事Nginx有缓存,通过查资料发现:
- Nginx 在启动/重载的时候回去解析转发的域名
- 如果域名无法解析 Nginx 就无法启动
- 只有下次重启/重载的时候才会重新去解析,启动后无视TTL
临时解决方案是重启Nginx解决。
至于说怎么解决Nginx的DNS缓存问题有很多办法,简单掉就是增加resolver配置
总结
其实问题很简单,但是要定位到问题在哪里,需要一些知识的积累。