Node.js
我正在尝试在我的计算机上本地运行多个Web 服务器。
因为我正在编写的代码需要引用域名,所以我想保留一个约定dev.myHost.com
并将其指向从 Node 运行的非端口 80 服务(技术上我在Harp.j
s 上运行一个,在 上运行一个Sails.js
)。
- 所以
dev.hostOne.com
应该指出localhost:123
- 并
dev.hostTwo.com
应该指向localhost:456
这可能吗?如果可以,怎么做?
答案1
据我了解,您似乎只使用一台本地开发机器,意味着没有连接到任何提供 DNS 的网络。
如果我是对的,我建议设置如下所述:
步骤1 :为您的 MAC OS 分配至少两个 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
网络服务器来测试你的情况:
$ 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
规则和环回接口别名不是持久的,重启后将不再存在。因此请考虑添加启动脚本。