Используя ubuntu в качестве моего сервера, я пытаюсь настроить балансировку нагрузки с помощью HAProxy.
Когда я пытаюсь запустить с помощью "haproxy -f haproxy.cfg", я получаю эту ошибку.
[ПРЕДУПРЕЖДЕНИЕ] 035/115820 (1148): [haproxy.main ()] Невозможно поднять лимит FD до 8224. [ПРЕДУПРЕЖДЕНИЕ] 035/115820 (1148): Запуск веб-службы прокси: невозможно привязать сокет
Я думал, что освобождение порта 80 может решить проблему, поэтому я удалил apache2, который мог использовать порт 80. Но безуспешно все еще не решил мою проблему. Итак, как я могу убить приложение, использующее порт 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
заставил его работать, исправив общедоступный ip для моего сервера. Оказывается, я использую IP-адрес, который не является IP-адресом сервера, на котором в настоящее время установлен балансировщик нагрузки.
исправление этой строки решило мою проблему
слушать веб-сервис 192.168.1.120:80
У меня была та же проблема, что и у @ tom-angelo-clemente, но я решил ее, используя широковещательный адрес в параметре привязки внешнего интерфейса:
frontend wfe
bind 0.0.0.0:80
Это свяжет прокси-сервер с любым IP-адресом, который использует машина (не уверен в адресах на разных сетевых устройствах), поэтому будьте осторожны при использовании этого способа, если у вас есть частный интерфейс управления и адрес, к которому вы не хотите привязываться.
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)