我正在尝试在本地机器上运行多个Node.js Web服务器。
因为我写的代码需要引用一个域名,所以我想保持dev.myHost.com的约定,并指向从节点运行的非端口80服务(技术上我正在运行一个Harp.j s和一个在Sails.js )。
dev.hostOne.com应该指向localhost:123 dev.hostTwo.com应该指向localhost:456 这可能吗? 如果是这样,如何。
从我的理解,似乎你只使用一个本地开发机器,意味着没有连接到任何提供DNS的networking。
如果我是对的,我会build议设置如下所述的东西:
步骤1:至less分配两个IP地址到您的MAC OS(每个域一个),假设:
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
你完成了!
现在:
localhost:123 localhost:456 

我已经设置了两个Node.js Web服务器来testing你的情况:
$ 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规则和回送接口别名不是永久性的,重新启动后将不再存在。 所以考虑添加一个启动脚本。