Nginx

如何在將使用者從舊 IP 重定向到新 IP 時更改我的 DNS 的 A 記錄?

  • November 24, 2019

我有一個指向 ipA(A 記錄)的 DNS 記錄。我想將記錄更改為 ipB,但是一旦使用 ipB,我就無法接受 ipA 上的任何內容,因為該應用程序不能存在於兩個不同的地方。

該應用程序適用於 HTTP 協議。考慮到我沒有 root 訪問權限但我可以訪問 NGINX 配置,我有哪些選項可以將使用者重定向到 ipA?

當客戶端請求 DNS 名稱的 IP 地址時,解析 DNS 伺服器和客戶端都會記憶體響應。預設 TTL(記憶體響應的秒數)通常為 12-24 小時。這可以臨時更改以使遷移更順暢。

簡單的選項 - 在遷移應用程序之前至少 24-48 小時將您的 DNS 記錄上的 TTL 減少到 300(5 分鐘)左右,這樣客戶端應該只為您的 DNS 名稱記憶體一個簡短的 IP 地址時間。只要舊 IP 地址被記憶體,任何在您更改 IP 地址後解析您的 DNS 名稱的客戶端都將繼續定向到舊 IP 地址,但一旦過期,它們就會將其解析為新 IP 地址。對於記憶體中有舊 IP 地址的客戶端,將有幾分鐘的停機時間。

另一種選擇是為您的應用程序創建一個具有不同名稱的附加 A 記錄,該記錄將立即解析為新 IP 地址,然後在舊伺服器上的 NGINX 配置中設置臨時重定向。

我不熟悉 NGINX,但Google在這裡找到了一些可能有幫助的說明:https ://www.liquidweb.com/kb/redirecting-urls-using-nginx/

  1. 使用者想要訪問 app.somedomain.com,但他們的電腦在其 DNS 記憶體中有舊 IP 地址,或者解析 DNS 伺服器在其記憶體中有舊 IP 地址
  2. 他們的 HTTP 請求發送到您的舊伺服器,該伺服器將它們重定向到您的臨時域名 app2.somedomain.com,解析為您的新 IP 地址,並將新的 HTTP 請求發送到您的新伺服器。
  3. 一旦舊記錄在其 DNS 記憶體中過期,未來的請求將解析到新的 IP 地址,它們將直接轉到新伺服器

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