以最少的停机时间更改网络服务器

以最少的停机时间更改网络服务器

我在生产环境中有一个 Web 服务器。它的 IP 是 111.111.111.111,它被称为 ServerA。除了存储脚本文件之外,该服务器还存储用户上传的文件并拥有一个数据库。该应用程序使用通配符子域,其中 foo.example.com、bar.example.com 等转到一个公共虚拟主机,并且服务器代码根据子域名做出适当的响应。我的域名注册商指向 IP 111.111.111.111,并且还设置为支持通配符。

我需要将网络服务器更改为 IP 为 222.222.222.222 的新服务器,它被称为 ServerB。

应采取什么步骤来以最少的停机时间迁移服务器?

以下是我的初步想法。如果我有误或遗漏了某些步骤,请评论。

  1. 在服务器A上发布通知,系统将停机维护。
  2. 在 ServerB 上设置 Apache,类似于 ServerA 上的设置,并在 ServerB 上添加另一个虚拟主机,服务器名为 222.222.222.222(稍后会详细介绍)。
  3. 在 ServerA 上设置 Apache 以显示维护页面而不是访问应用程序脚本。
  4. 将脚本文件、上传的用户文件和数据库从ServerA复制到ServerB。
  5. 将域名注册商更改为指向 IP 222.222.222.222。
  6. 在 ServerA 上设置 Apache,将所有请求重定向到 IP 222.222.222.222。这将如何满足子域名要求?
  7. 等待域名更改传播。在此期间我会停机吗?
  8. 待ServerB完全测试完成后,取消ServerA的服务计划。

答案1

怎么样?停机迁移?

这是我对此类迁移的总体计划:

  1. 在旧服务器和新服务器之间建立一个临时 VPN(例如使用 OpenVPN)。
  2. 将整个应用程序从旧服务器复制到新服务器。
  3. 通过VPN 在旧服务器和新服务器之间建立数据库复制,旧服务器作为主服务器,新服务器作为从服务器。
  4. 等待所有数据库复制完成。这可能需要一段时间。
  5. 复制完成后,直接连接到新服务器(使用 /etc/hosts 技巧)并验证应用程序是否正常工作、Web 服务器是否配置正确等。
  6. 打破主/从关系,并配置旧服务器上的应用程序通过 VPN 与新服务器上的数据库通信。
  7. 更改 DNS 记录。在等待 TTL 过期期间,一些用户会访问旧服务器,一些用户会访问新服务器,但两者都会使用新服务器上的数据库。
  8. 当 TTL 到期且旧服务器不再接收流量时,请停用它。关闭临时 VPN。

相关内容