文章目錄
在 Windows 環境將特定網址指向不同 IP
這幾天正在測試 HttpClient 幾個過去被誤用的現象與解決方式,其中一個可能遇到的問題是使用 static HttpClient instance 時如果遇到 DNS 異動時無法即時反應,Singleton HttpClient? Beware of this serious behaviour and how to fix it 作者在文中提到在做 blue-green 部署或是 Azure 上的 slot swap 時特別容易遇到這個問題:對外 url 沒有異動,實際 ip 卻已改變,此時 static HttpClient instance 就會持續使用舊 ip 連線
原本想要實際建立 Azure instance 來做實驗,但後來想到可以透過低成本又相對簡單的 local hosts file 來模擬,順手紀錄一下
關於 hosts file
Windows 使用 hosts 檔案儲存主機名稱與數字網際網路通訊協定 (IP) 位址對應,以用來識別並尋找網路上的主機 IP
- 第一欄:IP
- 第二欄: 主機名稱
- 欄位間可以用
空白字元
ortab
分隔- 註解符號為
#
hosts 中有資料
hosts 中沒有資料,向 DNS 查詢
將 blog.yowko.com 指向本機 IIS
修改 hosts 檔案
位置:
%windir%\System32\drivers\etc\hosts
(C:\Windows\System32\drivers\etc\hosts)將 ip 與 domain 加入 hosts 中
127.0.0.1 blog.yowko.com #for local test
無法直接存檔
hosts 一般使用者只有
read&execute
權限,修改後需先儲存至其他位置再提供管理者權限覆蓋至%windir%\System32\drivers\etc\
可以使用 administrator 權限開啟編輯器再修改 hosts 即可直接儲存
加入 IIS website binding
未指定 binding 的站台就會直接指向該 ip 的 80 port 站台
開啟 IIS Manager –> 目標站台 –> Bindings
Add
指定 Host name –> OK
實際效果
修改前
ping
HTTP request
修改後
ping
HTTP request
心得
紀錄至此,突然發現離原始的想法好遠,每次看到自己掌握度沒那麼高的內容,都會鑽進去了解一番,也因為如此常常多花了許多時間,卻反而累積了更多東西要學XD
相信 hosts file 對於許多網站開發人員都很熟悉,我過去也有相關使用經驗,一般情況應該都能正確設定,但透過紀錄再次理解查找 server ip 的流程還是滿值得的
參考資訊
文章作者 Yowko Tsai
上次更新 2021-10-08
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。