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

C C*_*C C 10 domain-name-system migration

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

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

我已经警告我的所有用户关于此次搬家,并且我有一个明确的搬家时间窗口。我告诉他们,一旦迁移完成,如果 24 小时过去了,他们仍然看到旧的(锁定)站点,他们应该重新启动计算机以强制刷新本地 DNS 缓存。

我不明白用户的浏览器(缓存)如何在其中发挥作用。我自己对本地主机文件 (Win7) 的实验告诉我,浏览器的某些方面不允许旧 IP 地址消失——我必须转到历史记录->清除所有内容才能显示新站点位置起来,即使之后ipconfig /flushdns

(编辑) - 我没有对旧服务器的 root 访问权限,所以我无法实现这个问题公认答案

问题: 我真的不希望我的用户不得不处理这个问题,所以我可以做些什么来强制所有浏览器重新缓存?如果是这样,我要让它打开多长时间?

谢谢...

Yar*_*Dot 15

不,你不能。问题是 DNS 响应可以缓存在用户和 DNS 服务器之间的任何地方,并且无法使它们无效。

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

这样,您的网站停机时间几乎为零。

更新

如果您没有 root 访问权限,则有多种选择:

  • 在 PHP 中执行代理

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

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