在不破坏任何 URL 且不造成任何停机的情况下更换服务器的最佳实践是什么?

在不破坏任何 URL 且不造成任何停机的情况下更换服务器的最佳实践是什么?

我尝试搜索该问题的答案,但搜索词太宽泛,没有出现任何有用的信息。

我们有一台旧服务器,想用一台新服务器替换它(两台都是物理机器)。两台服务器都在运行,都有自己的 IP 地址、子域和 SSL 证书,并且都托管了相同的文件副本。我会尽量让我的问题尽可能直截了当,但首先我需要说明的是,我处理的不是 Web 服务器,而是流媒体服务器,两台服务器都运行着 Icecast。旧服务器在 Windows 上,新服务器在 Linux 上。(至于我们为什么要在流媒体服务器上托管文件,则是另一个问题,这与公共广播法规有关。)

现在是时候用新的来取代旧的了。问题是:做到这一点的最佳方法是什么?

我确定了两种可能性:

  1. 制作新服务器.ourdomain.org流媒体服务器的新 URL。

    但需要更新的 URL 实在太多了。数量太多(数百个),不可能全部更新,而且谁知道有多少 URL 是其他网站链接过来的。

    因此,为了捕获这些丢失的、随机的、旧的 URL,我们可以更改旧服务器.ourdomain.org指向新服务器 IP 而不是当前/旧服务器 IP 的记录。这将使旧的过时 URL 仍然有效,并可通过新子域从新服务器访问。

    但为了看看会发生什么,我做了一个测试,我创建了一个名为测试.ourdomain.org并将其指向新的服务器 IP。但是,当您尝试在浏览器中打开 HTTPS 版本时,它会抛出一个非常讨厌的错误消息,指出该网站存在安全风险。可能是因为证书的域名是新服务器.ourdomain.org。它在 http 中运行良好,但在 https 中则不行。

    为了解决这些问题,我们可以:

    • 也许,我们可以不改变 A 记录,而是以某种方式重定向来自旧服务器.ourdomain.org到 newserver.ourdomain.org。我不确定是否可以在 DNS 级别进行重定向。是吗?使用 CNAME 记录?
    • 我可以创建一个新的 A 记录,将其指向 Apache 服务器,并在 .htaccess 文件中放置重定向。对吗?
    • 将新服务器的 SSL 证书复制到旧服务器...?如果这真的可能的话,那么这听起来就像一场管理噩梦,因为我们必须每 3 或 4 个月更新一次证书。
  2. 第二种方法可能是:

    保持旧服务器.ourdomain.org域,但在 DNS 的 A 记录中用新服务器的 IP 地址替换旧服务器的 IP。现在,相同的流量将转到新的正确服务器,我甚至不必更改任何地方的任何 URL。此外,如果我们需要切换到备份服务器,这可以通过 DNS 轻松完成。

    然而我的同事对此有一个问题:

    “证书将 DNS 名称与 IP 地址绑定在一起。我们需要为保护 oldserver.ourdomain.org 的新服务器获取新证书,并且由于潜在的 IP 地址冲突,新旧服务器在切换期间都将处于非活动状态。这将导致停机。”

    这是真的吗?

我觉得选项 1 有点混乱。我想听听您对选项 2 的看法。

我很抱歉在这里嵌套了多个问题。请不要觉得你需要回答所有问题!我只是在寻找最简单、最好的方法来做到这一点。

谢谢你!!

答案1

两者都在运行,都有自己的 IP 地址、子域和 SSL 证书,并且都有托管的相同文件副本。

如果从外部来看,两者完全相同(在相同的 URL 上提供相同的内容等),并且您已经测试了两者的外部连接,那么您只需要更改相关记录的 IP 地址,然后等待“一段时间”(至少是 TTL,但最好更长),然后再关闭旧的。

相反,阅读:

但是,当您尝试在浏览器中打开 HTTPS 版本时,它会抛出一个非常讨厌的错误消息,指出该网站存在安全风险。可能是因为证书的域名是 newserver.ourdomain.org。它在 http 中运行良好,但在 https 中则不行。

那么这意味着新服务器上的 HTTPS 设置不正确吗?显然你需要先解决这个问题,新服务器需要拥有其所拥有的任何主机的证书(不需要与当前/旧证书相同)。

我不确定在 DNS 级别是否可以进行重定向

这个概念不存在。重定向是一种 HTTP 级别机制。对于您的情况,DNS 只是将名称映射到 IP 地址。

“该证书将 DNS 名称与 IP 地址绑定在一起。

根本不是这样,或者至少对于仅编码主机名(网站名称)的“通用”广泛使用的证书来说不是这样[总结;证书中可以有多个名称和/或通配符;但仍然只有名称]。这些证书没有关于 IP 地址的信息。您可以更改任何 HTTPS 服务器的 IP 地址,这对 TLS 部分和基于证书的身份验证没有影响。

如果您使用不同的证书,唯一“模糊”的事情就是一些显示证书更改的警报工具。这可能是良性的(并且一直都在发生,因为证书现在最多只有 1 年,通常只有 3 个月),也可能确实是劫持的迹象,但仅通过查看证书更改无法确定。

相关内容