将Apache绑定到特定的IP地址

我有三个IP。 我试图绑定Apache到我的两个IP地址,以留下第三空闲的其他用途(Node.js)。 目前,Apache正在监听所有的IP地址。 httpd.conf中:

Listen 80 

我只希望Apache绑定到我的两个地址。 我试着按照这个文档,把上面的Listen 80改为:

 Listen XX.XX.XX.XX:80 Listen XX.XX.XX.XX:80 

但是,当我尝试重新启动Apache时,出现以下错误:

 Stopping httpd: [FAILED] (99)Cannot assign requested address: make_sock: could not bind to address XX.XX.XX.XX:80 no listening sockets available, shutting down 

我不明白80端口是如何免费用于所有的IP地址,但是当我指定单个IP时,它是错误的。 有没有人有任何想法?

谢谢。

你只需要将1个IP地址绑定到apache。

 Listen [myIP1]:80 

这就是你所需要的。

通常,这个错误信息是由于input了错误的IP地址,或者由于端口80已经在指定的IP上使用了。 尝试暂时将端口更改为81(或类似的未使用的号码),看看是否有效。 如果是这样的话,意味着其他一些端口正在80端口上侦听这些IP地址中的一个或两个IP地址。 netstat应该列出在所有地址上侦听的所有服务。

你有没有看到两个ips

 ifconfig -a 

SSL会阻止Apache在同一个端口上收听。

尝试semanage port -l |grep http_t你将得到可用的监听端口,这样你就可以select另一个端口,并让虚拟主机监听。

在Ubuntu 12.04上,你不得不在IP地址(httpd.conf为空)中添加IP地址

NameVirtualHost xx.xx.xx.xx:80(如果您在网站上有多个域名)
听xx.xx.xx.xx:80