Haproxy无法绑定[0.0.0.0:80] - CentOS 6.5

3

我正在运行的操作系统是CentOS 6.5,目前正在尝试按照这个教程(http://socketo.me/docs/deploy)上的Websocket部分来操作,该教程要求我安装Haproxy并运行以下Linux命令:

sudo haproxy -f /etc/haproxy.cfg -p /var/run/haproxy.pid -D

问题在于,我收到了这条信息:
[ALERT] 015/013939 (22640) : Starting frontend public: cannot bind socket [0.0.0.0:80]

我的"netstat -nat | grep 80 | grep LISTEN"返回:

tcp        0      0 212.227.96.81:80            0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:8880                0.0.0.0:*                   LISTEN
tcp        0      0 2001:8d8:86c:6e00::14:3b:80 :::*                        LISTEN
tcp        0      0 :::8880                     :::*                        LISTEN
tcp        0      0 :::7080                     :::*                        LISTEN

PS:212.227.96.81是对我的域名进行ping操作的IP地址。 我应该采取什么措施来解决这个问题?难道是Apache的问题吗?因为我已经重启了它,但没有任何效果。 谢谢。


你必须关闭Apache。不能让haproxyapache同时服务于80端口。 - Barmar
你在负载均衡器上运行haproxy,在其后面的Web服务器上运行apache。 - Barmar
1个回答

4

您的Web服务器正在80端口上监听。

tcp        0      0 212.227.96.81:80            0.0.0.0:*                   LISTEN

您需要将Apache / web服务器端口更改为不同的端口。在同一台服务器上,无法将haproxy和Apache绑定到相同的端口。

client send request to port 80 ---> HA-PROXY--->send request to apache (port 8080).

假设两者运行在同一台服务器上。


我发现是NGINX在监听80端口,正如你刚才所说的,无法将它们绑定在同一端口上,那么你会建议我怎样让它们同时工作呢?(谢谢) - Youssef El Gharbaoui
只需将 ha-proxy 更改为端口 80,因为客户端正在连接到 http 端口 80,并将 nginx 更改为不同的端口,如 8080,然后配置您的 ha-proxy 发送请求(管道客户端请求)到您的 nginx 端口 8080。 - Tharanga Abeyseela
1
其实我是一个网页开发者,对服务器命令只了解一点点,如果你能告诉我需要输入的命令,那就太完美了,非常感谢。如果需要展示任何可以帮助你的东西,请随时告诉我,不要客气。 - Youssef El Gharbaoui
停止nginx (/etc/rc.d/init.d/ngix stop),然后打开更改/etc/nginx/nginx.conf,将listen 80更改为listen 8080;启动nginx (/etc/rc.d/init.d/nginx start),/etc/haproxy.cfg并更改frontend http绑定0.0.0.0:80,然后重新启动ha-proxy。然后您需要配置您的ha-proxy连接到您的Web服务器。不确定您使用的是什么类型的配置,您可以尝试此网址http://chase-seibert.github.io/blog/2011/02/26/haproxy-quickstart-w-full-example-config-file.html。 - Tharanga Abeyseela

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接