我有三个 IP。我试图将 Apache 绑定到我的两个 IP 地址,以便将第三个 IP 地址留给其他用途(Node.js)。目前,Apache 正在监听所有 IP 地址。httpd.conf:
Listen 80
我只希望 Apache 绑定到我的两个地址。我尝试过以下操作这doc并将上述内容替换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
我不明白为什么所有 IP 地址都可以免费使用端口 80,但当我指定单个 IP 时,会出现错误。有人知道吗?
谢谢。
答案1
只需要将1个IP地址绑定到apache。
Listen [myIP1]:80
这就是你所需要的全部。
答案2
通常,此错误消息是由于输入了错误的 IP 地址或由于端口 80 已在指定 IP 上使用。请尝试暂时将端口更改为 81(或类似的未使用数字),看看是否可行。如果可行,则意味着其中一个或两个 IP 上的端口 80 上还有其他程序正在监听。netstat
应列出所有地址上监听的所有服务。
答案3
如果你执行
ifconfig -a
答案4
在 ubuntu 12.04 上,你必须在那里添加 IP(httpd.conf 为空)
NameVirtualHost xx.xx.xx.xx:80(如果您的网站上有多个域名)
Listen xx.xx.xx.xx:80