【问题标题】:Is there a way to flush the DNS of a client (browser)?有没有办法刷新客户端(浏览器)的 DNS?
【发布时间】:2013-06-22 09:54:26
【问题描述】:

我要将网站移动到具有不同 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 缓存,那就太好了。有这样的可能吗?

【问题讨论】:

    标签: javascript dns client-side record flush


    【解决方案1】:

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

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

    但实际上,我认为保留旧文件并没有什么坏处。在接下来的一周左右更新两者,以确保每个人的 DNS 都发生变化,然后做任何你想做的重定向。它应该使传输看起来更加无缝。也就是说,除非您更改服务器以添加某种您无法在旧服务器上添加的新功能。

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

    【讨论】:

    • 域名相同的情况下如何进行这样的重定向?新服务器无法通过其 IP 访问。
    • 创建一个新域并将其附加到新服务器。更改生效后,将该辅助域重定向到主域。
    • 新服务器IP无法访问怎么办?它一定要是。这通常是它的工作原理。我同意 SJuan76。
    • 无论如何,很多网站确实会停止工作几个小时,这并不难。 SO 确实在 2 月停止了几个小时进行迁移(如果您不是每周都迁移)。提前警告你的用户,说明你在做什么是一个关键问题。
    • 一个小时左右就可以了。但不是一两天。无论哪种方式,都同意您绝对应该警告他们。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-18
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 2013-03-02
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多