我正在將我的Web應用程序移動到另一臺服務器,並且在接下來的幾天內,我將刷新DNS以指向新的IP位置。如何強制DNS網站刷新?
不幸的是,一些瀏覽器和SO保持DNS緩存,使用戶指向舊的IP位置。有些用戶是新手,他們不會手動刷新DNS緩存,我知道在這個改變後的頭幾個星期裏我們會失去很多。
有沒有辦法強制這個DNS緩存刷新,所以它會對我們的最終用戶是透明的?
我正在將我的Web應用程序移動到另一臺服務器,並且在接下來的幾天內,我將刷新DNS以指向新的IP位置。如何強制DNS網站刷新?
不幸的是,一些瀏覽器和SO保持DNS緩存,使用戶指向舊的IP位置。有些用戶是新手,他們不會手動刷新DNS緩存,我知道在這個改變後的頭幾個星期裏我們會失去很多。
有沒有辦法強制這個DNS緩存刷新,所以它會對我們的最終用戶是透明的?
就我所知,像這樣的強制更新不是直接可能的。如果您的名稱服務器服務提供商允許,您可能可以通過在更改條目之前減少條目的TTL(生存時間)值來減少DNS停機時間。
這是guide for less painful DNS changes。
雖然並非所有客戶端和授權(源)名稱服務器之間的名稱服務器都會執行您的TTL,但它們可能會有自己的緩存時間。
強制用戶清除DNS緩存並不是一個可靠的方法,並且通常由他們的ISP在其操作系統之上完成。更新後的DNS不應超過24小時才能傳播。您最好的選擇是通過使用類似mod_proxy和Apache的方法來爲用戶創建一個反向代理到您的新服務器,從而實現與用戶的無縫轉換。這將導致對舊服務器的所有查詢仍然返回正確的結果,幾天後您可以自由移除反向代理。
如果您的兩臺服務器都使用了WHM,我認爲我們可以將時間縮短到零。在新服務器中創建您的域並將所有設置都準備就緒。轉到上一臺服務器並刪除與該域對應的帳戶。到目前爲止,我沒有犯這樣的錯誤,並感覺到瞬時更新。僅供參考我使用hostgator託管(兩個專用服務器)。 我真的不知道爲什麼是這樣。在TTL結束之前,它應該不是那樣的。
你不能強制刷新,但你可以轉發所有舊的ip請求到新的。 一個網站:
替換[OLD_IP]與舊服務器的IP
與新服務器的IP
運行&贏替換[新_IP。
回聲 「1」>的/ proc/SYS /淨/的IPv4/IP_FORWARD
iptables的-t NAT -A PREROUTING -d [OLD_IP] -p TCP --dport 80 -j DNAT --to目的地[新_IP]:80
iptables的-t NAT -A PREROUTING -d [OLD_IP] -p TCP --dport 443 -j DNAT --to目的地[新_IP]:443個
iptables的-t NAT - POSTROUTING -j MASQUERADE
爲什麼不編輯/ etc/hosts然後:) – JSmyth
如果你沒有訪問你的DNS的TTL(與許多託管服務器的情況),這是一個完美的解決方案 - 如果舊的服務器不需要端口80上的Web服務器仍在運行... –
所以,如果問題是你剛創建一個網站,你的客戶或任何給定的ISP DNS緩存,並不顯示新的網站呢。是的所有其他的東西適用於ipconfig重置瀏覽器等。但這裏有一個想法和我不時做的事情。您可以在NIC屬性的tcpip屬性中設置備用網絡ISP的DNS。所以如果你的ISP說telstra並且它沒有傳播或更新,你可以在那裏指定一個替代服務提供商DNS。如果那個isp dns在你的本地之前更新,那麼你會看到新的網站。但是在DNS更新之前,你可以做很多其他的技巧來確定傳播並使郵件工作。 如果任何人想聊天,請給我一條線。
谷歌允許你刷新DNS緩存:https://developers.google.com/speed/public-dns/cache –