从最终用户的角度来看,更改站点 IP 地址的最佳方法是什么?

从最终用户的角度来看,更改站点 IP 地址的最佳方法是什么?

我确实在这里阅读了许多相关的问答,但我仍然不确定最好的答案是什么。

我正在将几个站点从 IP 地址“1.abc”移至“2.def”。截至目前,在现有 DNS 中,我将所有 TTL 设置为 300 秒,并且我有一个可供使用的新 DNS 区域(在 AWS Route 53 上),其中包含新名称服务器和所有 TTL 均为 60 秒。因此,从 DNS 的角度来看,我相信我已经准备好了。移动后,几天后,我将在 Route 53 上将 TTL 设置为更合理的数字。

我已经向所有用户发出了迁移警告,并规定了迁移的时间范围。我告诉他们,一旦迁移完成,如果 24 小时过去了,他们仍然看到旧的(锁定的)网站,他们应该重新启动计算机以强制刷新本地 DNS 缓存。

我不明白用户的浏览器(缓存)在这方面起什么作用。我自己对本地 hosts 文件(Win7)的实验告诉我,浏览器存在一些问题,无法释放旧的 IP 地址——我不得不去历史->清除所有内容为了让新的网站位置显示出来,即使在ipconfig /flushdns

(编辑) - 我没有旧服务器的 root 访问权限,因此无法实现接受该问题的答案

问题: 我真的不想让我的用户遇到这种情况,那么我能做些什么来强制所有浏览器重新缓存吗?如果可以,我要让它保持打开状态多久?

谢谢...

答案1

不可以。问题在于 DNS 响应可以缓存在用户和 DNS 服务器之间的任何地方,并且没有办法使它们失效。

但是您可以做的是 - 只要您的数据同步并且您的第二个站点准备就绪,您就可以重新配置原始服务器以充当代理并将所有请求传递到新位置。

这样,您就可以实现网站停机时间几乎为零。

更新

如果您没有 root 权限,则有以下几种选择:

  • 在 PHP 中执行代理

  • 在第二台服务器上配置代理(如果您在那里有 root 访问权限),切换 DNS,当您准备好时,将代理更改为 Web 服务器

  • 这种方法可能是问题的根源拥有 2 个地址(www.domain.tld 和 www2.domain.tld)。配置 www2(与 www 相同)并设置正确的 DNS 记录。然后准备您网站的 www 版本并进行 DNS 切换。将旧服务器上的所有请求重定向到 www2 子域。

答案2

理论上,将域的 TTL 设置为较低的值并等待更改发生,然后更改 IP,应该会导致近乎透明的迁移。毕竟,这就是 TTL 可配置的全部意义所在。

实际上,人们可能会错误配置,导致工具损坏。因此,如果出现问题,您可能需要向用户提供清除本地缓存的说明。

但你没有做错什么。

答案3

不可避免地,您的旧地址将被缓存并长期使用——主要是由机器人使用。

我会怎么做:

  • 创建一个 A 记录,例如www2.yourdomain.com,指向新 IP。此记录以前从未使用过;因此永远不会被缓存。
  • 将旧服务器上的查询重定向至www2.yourdomain.com
  • 监控重定向,当流量下降到可接受的水平时,删除旧服务器。
  • 最后,一旦旧服务器被删除,重定向www2.yourdomain.comwww.yourdomain.com

请务必使用 301 永久重定向。https://en.wikipedia.org/wiki/HTTP_301

答案4

听起来您打算同时更改名称服务器?由于名称服务器的发现方式,它们比常规记录更新时间更长 - 通常需要 24 小时或更长时间。

我强烈建议您更新当前提供商的 DNS更改 DNS,或者在更改网站 IP 之前 7 天更改您的名称服务器。

现代计算机和浏览器在遵守 DNS 的 TTL 方面相当可靠,但您需要了解整个链才能获得最佳结果。

相关内容