Domain-Name-System

在不破壞任何 URL 且沒有任何停機時間的情況下更換伺服器的最佳實踐?

  • April 23, 2021

我試圖尋找這個問題的答案,但搜尋詞太寬泛以至於沒有彈出任何有用的資訊。

我們有一台舊伺服器,我們想用新伺服器替換它(兩者都是物理機)。兩者都在工作,都有自己的 IP 地址、子域和 SSL 證書,並且都擁有相同的託管文件副本。我會盡量讓我的問題保持直截了當,但首先我需要說的是,這些不是我正在處理的 Web 伺服器,它們是流媒體伺服器,並且兩者都在執行 Icecast。舊的在 Windows 上,新的在 Linux 上。(為什麼我們在流媒體伺服器上託管文件是另一個問題,與公共廣播法規有關。)

現在是時候用新的替換舊的了。問題是:最好的方法是什麼?

我已經確定了兩種可能性:

  1. newserver.ourdomain.org設為流伺服器的新 URL。

但是有許多 URL 需要更新。太多(數百個)無法將它們全部獲取,誰知道有多少是從其他網站連結到的。

因此,為了擷取這些失去的、隨機的舊 URL,我們可以更改oldserver.ourdomain.org的 A 記錄以指向新伺服器的 IP,而不是目前/舊的 IP。這將使舊的過時 URL 仍然有效,並且可以從具有新子域的新伺服器訪問。

但是為了看看會發生什麼,我做了一個測試,在其中創建了一個名為testing.ourdomain.org的 A 記錄,並將其指向新的伺服器 IP。但是,當您嘗試在瀏覽器中打開 HTTPS 版本時會發生什麼,它會拋出一條非常討厭的錯誤消息,指出該站點存在安全風險。可能是因為證書的域是newserver.ourdomain.org。它在 http 中執行良好,但在 https 中執行良好。

為了解決這些問題,我們可以:

  • 也許,我們可以以某種方式將流量從oldserver.ourdomain.org重定向到newserver.ourdomain.org ,而不是更改 A 記錄。我不確定在 DNS 級別是否可以進行重定向。是嗎??使用 CNAME 記錄?
  • 我可以創建一個新的 A 記錄,將其指向 Apache 伺服器並在 .htaccess 文件中放置一個重定向。對?
  • 將新伺服器的 SSL 證書複製到舊伺服器…?如果這甚至是可能的,那麼這聽起來像是一場管理噩夢,因為我們必須每 3 或 4 個月更新一次證書。
  1. 第二種方法可能是:

保留oldserver.ourdomain.org域,但在 DNS 的 A 記錄中將舊伺服器的 IP 替換為新伺服器的 IP 地址。現在,相同的流量將轉到新的、正確的伺服器,我什至不必在任何地方更改任何 URL。此外,如果我們需要切換到備份伺服器,這很容易通過 DNS 完成。

但是我的同事對此有疑問:

“證書將 DNS 名稱與 IP 地址聯繫起來。我們需要為保護 oldserver.ourdomain.org 的新伺服器獲取新證書,並且由於潛在的 IP 地址衝突,新舊伺服器在轉換期間都將處於非活動狀態. 這將導致停機。”

這是真的嗎?

在我看來,選項 #1 有點亂。我想听聽您對選項#2 的意見。

對於在這裡嵌套多個問題,我深表歉意。請不要覺得您需要回答所有問題!我只是在尋找最簡單和最好的方法來做到這一點。

謝謝!!

兩者都在工作,都有自己的 IP 地址、子域和 SSL 證書,並且都擁有相同的託管文件副本。

如果從外部看兩者完全相同(在相同的 URL 上提供相同的內容等)並且您已經測試了兩者的外部連接,您只需更改相關記錄的 IP 地址,然後等待“一段時間” (至少 TTL,但最好更長),然後關閉舊的。

相反,閱讀:

但是,當您嘗試在瀏覽器中打開 HTTPS 版本時會發生什麼,它會拋出一條非常討厭的錯誤消息,指出該站點存在安全風險。可能是因為證書的域是 newserver.ourdomain.org。它在 http 中執行良好,但在 https 中執行良好。

所以這意味著 HTTPS 沒有在新伺服器上正確設置?顯然,您需要先解決這個問題,新伺服器需要為其擁有的任何主機提供證書(不需要與目前/舊的證書相同)。

我不確定是否可以在 DNS 級別進行重定向

這個概念不存在。重定向是一種 HTTP 級別的機制。對於您的情況,DNS 只是將名稱映射到 IP 地址。

“證書將 DNS 名稱與 IP 地址聯繫起來。

根本不正確,或者至少對於僅編碼主機名(網站名稱)的“通用”廣泛使用的證書不正確

$$ summarizing; there can be multiple names in the certificate and/or wildcards; but still only names $$. 這些證書沒有關於 IP 地址的資訊。您可以更改任何 HTTPS 伺服器的 IP 地址,這對 TLS 部分和基於證書的身份驗證沒有影響。 如果您使用不同的證書,您可以擁有的唯一“模糊”的東西是一些顯示證書更改的警報工具。這可能是良性的(並且一直發生,因為證書現在最多 1 年,通常只有 3 個月),或者確實是劫持的跡象,但這不能僅通過查看證書更改來決定。

引用自:https://serverfault.com/questions/1061350