我希望Apache只能在我指定的地址上侦听端口80。我可以吗?

时间:2012-05-15 20:40:53

标签: apache http node.js

我有一堆域指向一个IP地址(我觉得这将是阻止它工作的主要因素),其中一个我想指向端口80上的node.js服务器而不是不得不在Apache中使用代理。

我已经在apache中删除了*:80的虚拟主机(每次重新启动它时都会警告我。)

当我要求节点收听domain.one:80时(只是一个例子,不是我真正使用的),它不起作用 - 它告诉我地址​​正在使用中,即使没有VirtualHost for domain.one:80。

我怀疑这与domain.one和domain.two都指向同一个IP这一事实有关,对吧?如果没有,我该怎么办?谢谢:))

2 个答案:

答案 0 :(得分:2)

端口直接绑定到IP地址。每个IP地址只能有一个进程侦听给定端口。由于您的域名都解析为相同的IP地址,因此对于每个侦听端口80的域名,您都无法拥有单独的节点进程。

如果您希望保留此方案,则需要让每个节点服务器侦听不同的端口,并按照here所述在Apache中配置反向代理。您也可以考虑使用nginx,因为它也具有此功能(配置略有不同)。

答案 1 :(得分:0)

是。您可以在vhost中指定服务器名称。然后,您只能在标记中指定IP或*。创建一个*:80 Vhost并添加

<VirtualHost *:80>

     ServerName domain.one
     DocumentRoot /blah/blah
     ....
 </VirtualHost>

到它。这将按域名过滤。