Mac-Osx
主機名到帶有埠的 localhost - OSX
我正在嘗試
Node.js
在我的機器上本地執行多個 Web 伺服器。因為我正在編寫的程式碼需要引用一個域名,所以我想保持一個約定
dev.myHost.com
並將其指向從 Node 執行的非埠 80 服務(從技術上講,我正在執行一個 onHarp.j
s 和一個 onSails.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
你完成了!
現在 :
- http://dev.hostone.com重定向到
localhost:123
- http://dev.hosttwo.com重定向到
localhost:456
![]()
我已經設置了兩個
Node.js
Web 伺服器來測試您的案例:$ 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
規則和環回介面別名不是持久的,並且在重新啟動後將不再存在。所以考慮添加一個啟動腳本。