
如果我先從位於 A 城市的伺服器發布我的網站,然後將此伺服器移至 B 城市(我希望更改其 IP 位址),該網站的用戶是否仍然能夠在同一 URL 下存取它?我正在從 DNS 的角度考慮這個問題 - 我希望能夠透過網域名稱註冊商更改此(理論)網站網域到新 IP 位址的映射,但我擔心某些用戶造訪過遷移前的網站將被指向舊的IP 位址。
我聽說 DNS 映射是「快取」的,並且該快取僅在一段時間後過期,這可能會導致預遷移用戶無法收到新的 IP 位址訊息,但我無法找到特定於上述情況的任何資訊。
綜上所述,我是否需要擔心搬遷前的用戶在搬遷和更改IP位址後無法透過相同的URL訪問網站?如果是,那我能做什麼呢?
(附帶問題:ISP 會允許我在搬遷到新城市後保留相同的IP 位址嗎?搬到其他國家/地區怎麼樣?我問這個是因為如果我可以保留IP,那麼快取或其他方面會出現任何問題嗎?
答案1
您使用新的 IP 位址更新網域的 DNS:
例如,代替
example.com. IN A 192.0.2.1
你把
example.com. IN A 198.51.100.1
正在存取的使用者example.com
將繼續使用相同的名稱進行存取; IP位址的改變對他們來說是透明的。這就是 DNS 的目的:即使 IP 位址可能發生變化,也能夠使用固定名稱。
各種 Web 面板中存在的各種視覺化 DNS 編輯器也允許進行此類變更。將會出現一些「DNS 快取」問題,這是由於每個記錄還有一個 TTL(生存時間)設置,並且 DNS 伺服器可能會快取該時間。在此期間,一些用戶將訪問新 IP(如果他們的 DNS 伺服器快取中沒有舊記錄),而一些用戶仍會嘗試存取舊 IP。該網站將無法為那些快取了舊地址的人提供服務,直到快取過期,這是您應該遇到的最糟糕的事情。此停機時間通常為 2 天到 1 小時。您可以使用各種 DNS 工具檢查您的網站(找到 DNS 觀察鏡並輸入您的網站名稱;它應該顯示 TTL 以及其他資訊)。
可以進行一些準備,使外部用戶的停機時間僅持續幾秒鐘。您需要在舊 IP 和新 IP 上設定反向代理,並將真實伺服器作為後端。然後,無論返回給用戶哪個IP,反向代理都會在該位址上運行,並且它會知道在哪裡可以找到真正的伺服器。當您移動伺服器並更改其位址時,您只需更新反向代理的配置,幾乎可以立即完成。然後更新 DNS,當記錄的 TTL 過期時,您可以根據需要將設定還原為無代理程式。這需要在兩個地方同時運行一些東西,但如果停機時間很重要,那麼這就是可行的方法。
如果您更改 ISP 並且您的 IP 已綁定到 ISP,則無法保留它。 (很可能您沒有獨立於提供者的地址;如果您有,您可能還有一個知道該怎麼做的 IT 部門。)至於更改城市但保持相同的 ISP,您應該詢問他們,因為有時會有與您一起移動IP 的技術可能性。但不要依賴這個!而且,我相信,沒有哪個 ISP 會跨越國家並允許您保留 IP 位址。