有没有办法刷新客户端(浏览器)的DNS?

时间:2013-06-22 09:54:27

标签: javascript dns client-side record flush

我要将网站移动到具有不同IP地址的新服务器。我已经复制了所有文件和数据,但它运行良好。我通过编辑hosts文件对此进行了测试,以便在新服务器尚未公开时可以看到它。

现在,我要将网站的A和AAAA记录更改为指向新服务器。他们都有一个小时的TTL。我相信这意味着客户端可能会等待最多一个小时来更新缓存的DNS记录。但是,我想将访问者直接发送到新网站。我想在旧服务器上构建一个小网页,如下所示:

The site has been moved and is currently unavailable to your computer. 
<a href="/">Try again</a> in one hour.

如果我可以添加一些客户端代码来告诉客户端和/或客户端浏览器刷新其DNS缓存,那将是很棒的。有可能吗?

2 个答案:

答案 0 :(得分:4)

Theres无法刷新客户端DNS记录。但是如果您的旧服务器允许您,您可以使用.htaccess文件将请求重写到新服务器并添加301永久移动的状态代码。

如果您无法访问实际的Web服务器,那么您可以使用这样的页面。或者甚至在3秒后将javascript重定向到新服务器。

但实际上,我认为离开旧文件不会有什么坏处。在下周左右更新两者以确保DNS为每个人更改,然后执行您想要的任何重定向。它应该使转移看起来更加无缝。也就是说,除非您更改服务器以添加某些类型的新功能,否则您将无法使用旧功能。

但总的来说,它的不良形式只是告诉人们一小时后回来。维护屏幕有时是必要的,但通过这样做肯定会损害您的流量和用户群。

答案 1 :(得分:0)

使用 Firefox,dns.resolve() 可以刷新浏览器的 DNS。

检查https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/dns/resolve