每個軟體都自己把作業系統的host配置項加到記憶體中供頻繁呼叫

王滔發表於2014-11-18

nginx的轉發,http_pass 轉發到一個域名passport.ab.cn

 

那具體是到哪臺機器上。

 

其實可以通過/etc/hosts檔案來配置的。

 

可以理解,這個hosts檔案是作業系統級別的,所有在這個作業系統上的軟體都繞不過它。

 

應該是作業系統提供了一個作業系統的函式,供作業系統上的軟體來呼叫。具體細節應該是c語言方面了。不是很清楚。

 

之前遇到一個問題,明明讓運維設定轉發到133機器上。結果看到的訪問還是181機器上的版本。這就奇怪了。其實要重啟nginx才行。

 

每個軟體都會自己維護host,快取在記憶體中。這也就明白了,為什麼修改了window下的host配置,瀏覽器要重啟,才能使用到新的配置,不然會用到以前的配置。

 

可以把這瀏覽器與ngingx看作是同型別軟體,會快取host項在記憶體中。

 

目的很明顯,就是為了提高效能。以避免每次都需要去讀取磁碟,磁碟存在i/0瓶頸。一次載入到記憶體中,自己維護(這是很多系統的一個設計思想,比如資料庫系統也是這樣子,定期把資料刷到磁碟上持久化)。除非我自己的程式消失掉了,資料就消失掉了。

 

以後記得,讓nignx做轉發,如果修改了host檔案,要讓nginx重啟為好。reload是否可以呢?

相關文章