我正在将我的网络应用程序迁移到另一台服务器,并在接下来的几天内刷新DNS以指向新的IP位置。
不幸的是,一些浏览器和操作系统会保留DNS缓存,这将使用户指向旧的IP位置。 一些用户是新手,他们不会手动刷新DNS缓存,我知道在此更改后的前几周我们会失去很多他们。
有没有办法强制刷新DNS缓存,使其对我们的最终用户透明?
没有确保用户清除DNS缓存的方法,通常这是由他们的ISP在其操作系统上完成的。更新DNS传播不应该需要超过24小时。您最好的选择是通过使用像Apache中的mod_proxy这样的工具来创建一个反向代理将转换对用户无缝进行。这将导致所有查询仍然返回正确结果,并且几天后您将可以删除反向代理。
您无法强制刷新,但可以将所有旧IP请求转发到新的IP。
对于一个网站:
将[OLD_IP]替换为旧服务器的IP
将[NEW_IP]替换为新服务器的IP
运行并获胜。
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d [OLD_IP] -p tcp --dport 80 -j DNAT --to-destination [NEW_IP]:80
iptables -t nat -A PREROUTING -d [OLD_IP] -p tcp --dport 443 -j DNAT --to-destination [NEW_IP]:443
iptables -t nat -A POSTROUTING -j MASQUERADE
如果问题是您刚创建了一个网站,但您的客户或任何给定的ISP DNS已被缓存,并且尚未显示新站点。是的,所有其他内容都适用于ipconfig重置浏览器等。但是这里有一个想法,也是我偶尔会做的事情。您可以在NIC属性上的tcpip属性中设置备用网络ISP的DNS。因此,如果您的ISP是Telstra并且尚未传播或更新,则可以在那里指定替代服务提供商的DNS。如果该ISP DNS在您的本机DNS之前更新,那么您将看到新站点。但是还有很多其他技巧可以确定传播并使邮件在DNS更新之前工作。如果有人想聊,请给我留言。
可能可以完全删除区域记录,然后像您想要的那样重新创建。也许这会强制执行完整的传播。如果我错了,有人告诉我,我会删除这个建议。同时,我不知道如何使用 WHM 或任何其他工具保存区域记录并重新创建它。
我知道今天当我删除并重新创建一个托管帐户时,原始的区域记录似乎瞬间传播到了我的电脑上游的 DNS 解析器。这是它工作的良好证据。