使用 ubuntu 作为我的服务器,我正在尝试使用 HAProxy 设置负载平衡。
当我尝试使用“haproxy -f haproxy.cfg”运行时出现此错误。
[警告] 035/115820 (1148):[haproxy.main()] 无法将 FD 限制提升至 8224。[警报] 035/115820 (1148):正在启动代理 Web 服务:无法绑定套接字
我以为释放端口 80 可以解决问题,所以我卸载了可能正在使用端口 80 的 apache2。但无济于事,仍然没有解决我的问题。那么我该如何终止使用端口 80 的应用程序呢?
我的 haproxy.cfg
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
#chroot /usr/share/haproxy
user haproxy
group haproxy
daemon
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webservice 192.168.1.120:80
mode http
stats enable
stats refresh 10s
stats hide-version
cookie GALAXY insert
balance roundrobin
option httpclose
option httpchk OPTIONS /health_check.html
option forwardfor
server RONAHPC 192.168.1.7:80 cookie GALAXY_SERVER_01 check
server MAANPC 192.168.101:80 cookie GALAXY_SERVER_02 check
答案1
netstat -anop | grep ":80"
这应该会向您显示正在监听该端口的内容。例如:
~]# netstat -anop | grep ":80"
tcp 0 0 :::80 :::* LISTEN 15566/httpd off (0.00/0/0)
您也可以使用: lsof -Pni | grep ":80"
前任:
~]# lsof -Pni | grep ":80"
httpd 15566 apache 4u IPv6 6247436 0t0 TCP *:80 (LISTEN)
httpd 19069 root 4u IPv6 6247436 0t0 TCP *:80 (LISTEN)
答案2
通过更正我的服务器的公共 IP 使其正常工作。结果发现我使用的 IP 地址不是当前安装了负载平衡器的服务器的 IP 地址。
修复这条线解决了我的问题
监听 web 服务 192.168.1.120:80
答案3
我遇到了与@tom-angelo-clemente 相同的问题,但通过在前端的绑定参数上使用广播地址解决了该问题:
frontend wfe
bind 0.0.0.0:80
这会将代理绑定到机器正在使用的任何 IP 地址(不确定不同 NIC 设备上的地址),因此如果您有一个不想绑定的私有管理接口和地址,请在使用这种方式时要小心。