服务器迁移,尽量减少错误的 DNS 查找

Mr.*_*oon 4 domain-name-system linux migration

我经营着一个大型网站(每天 50 万个独立用户)并且即将转移到另一个托管商。

我的新机器已经安装和测试,所有文件都被复制过来,所以我几乎准备好在我的注册商处更改我的域的 IP 地址。

现在我想知道是否有办法最大限度地减少访问旧服务器的人数,因为他们的 DNS 信息尚未更新。

有时更新可能需要很长时间,而人们访问旧服务器会使我的网站不同步。

有没有办法强制人们从我的旧机器转移到新机器?

Smu*_*dge 9

不,是的,但实际上不是。

在迁移之前将你的 DNS TTL 设置得非常低(比如 5 分钟),这会告诉客户端只缓存 DNS 5 分钟然后刷新。理论上,在您更改 DNS 中的 IP 后,客户端只需 5 分钟即可开始访问新的服务器 IP。

不幸的是,理论不是现实。一些 ISP 和 DNS 提供商缓存记录的时间比 TTL 集长(我见过一些 ISP 缓存 5 分钟的 TTL 持续 48 小时),简而言之,从技术角度来看,您绝对无法阻止他们这样做,即使虽然他们不应该。唉,说服所有用户迁移到 OpenDNS 可能不是最好的主意。

当我在此之前移动较大的站点时,通常是我遵循的过程;

在两个(新旧)数据库服务器之间设置同步。

如果您使用的数据库支持主-主复制(IE 对以太节点的写入将传播到另一个节点),请同时运行旧服务器和新服务器,直到所有客户端都更新。这意味着客户端可以访问以太服务器并且该站点将完全正常运行。

如果数据库仅支持主从/日志传送等。保持站点运行的唯一真正选择是让旧服务器运行数据库的“只读”副本,它仍然具有最新数据,但只能读取,不写/更新。根据您的网站,这可能不是什么大问题。

另一种可能也是最容易实现的选择是在旧服务器上放置一个代理,将任何请求转发到新服务器。由于代理中的额外跃点,旧服务器上的用户会遇到一些延迟,但通过巧妙的缓存配置,您可能可以将其最小化。

使用上述任何选项,监控旧服务器,当所有/大多数客户端都像往常一样退役时。

当然,如果每个人都遵循他们应该遵循的标准,这一切都是可以避免的。