Mac-Osx

主機名到帶有埠的 localhost - OSX

  • June 19, 2015

我正在嘗試Node.js在我的機器上本地執行多個 Web 伺服器。

因為我正在編寫的程式碼需要引用一個域名,所以我想保持一個約定dev.myHost.com並將其指向從 Node 執行的非埠 80 服務(從技術上講,我正在執行一個 on Harp.js 和一個 on Sails.js)。

  • 所以dev.hostOne.com應該指向localhost:123
  • 並且dev.hostTwo.com應該指向localhost:456

這可能嗎?如果是這樣,如何。

據我了解,您似乎只使用一臺本地開發機器,這意味著沒有連接到任何提供 DNS 的網路。

如果我是對的,我建議設置如下所述的內容:

**第 1 步:**為您的 MAC 作業系統分配至少兩個 IP 地址(每個域一個),假設:

192.168.0.10
192.168.0.11

要設置第二個 IP,您必須添加第二個乙太網適配器(邏輯而非物理)。

**第 2 步:**由於您沒有 DNS 伺服器,您可以/etc/hosts通過添加以下內容來設置文件:

192.168.0.10     dev.hostone.com
192.168.0.11     dev.hosttwo.com

**第 3 步:**為您的環回介面分配別名:

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

**第 4 步:**設置ipfw轉發數據包:

sudo ipfw add fwd 127.0.0.1,123 tcp from me to 192.168.0.10 dst-port 80
sudo ipfw add fwd 127.0.0.1,456 tcp from me to 192.168.0.11 dst-port 80

你完成了!

現在 :

在此處輸入圖像描述 在此處輸入圖像描述


我已經設置了兩個Node.jsWeb 伺服器來測試您的案例:

$ netstat -anp tcp | grep -E "123|456"
tcp4    0    0  127.0.0.1:123    *.*    LISTEN
tcp4    0    0  127.0.0.1:456    *.*    LISTEN

**重要提示:**請注意,ipfw規則和環回介面別名不是持久的,並且在重新啟動後將不再存在。所以考慮添加一個啟動腳本。

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