Назад | Перейти на главную страницу

Не удается запустить HAProxy

Когда я запускаю HAProxy, он говорит:

Starting haproxy: [ALERT] 038/154339 (770) : Starting proxy proxy1: cannot bind socket                                                            [FAILED]

Моя конфигурация:

global
daemon
log /dev/log local4
maxconn 400000
ulimit-n 810000

defaults
log global
contimeout 4000
clitimeout 42000
srvtimeout 43000

listen proxy1 31.***.50.247:8217
mode tcp
balance leastconn
server proxy1_1  198.**.**0.70:25565

Некоторые мои IP-адреса скрыты от serverfault.

Предполагая, что это RHEL или какая-либо производная, если у вас есть SELinux, вероятно, вы не оцените, что вы запускаете haproxy на порту, с которым политика не знакома.

Попробуйте перезапустить процесс, пусть не удастся. Тогда беги ausearch -ts recent -m avc. Если он возвращается с результатами (текстом), попробуйте выполнить эти две команды.

semanage port -a -p tcp -t commplex_port_t 8217
semanage port -a -p tcp -t commplex_port_t 25565

Это изменит политику SELinux, чтобы знать, что haproxy прослушивает эти порты.

Странная метка "commplex_port_t" - это определение типа порта 5000, который (я полагаю) haproxy использует по умолчанию, если вы не выбираете порт. В /etc/services порт 5000 претензий зарегистрирован в commplex-main service, поэтому название лейбла неуместно.

cannot bind socket [FAILED]

Обычно это означает одно из двух:

  1. Этот порт уже прослушивает другой демон.
  2. Вы используете порт ниже 1024 и используете haproxy как непривилегированный пользователь.

Поскольку похоже, что вы используете порт 8217 и 25565, # 2 не так.

Чтобы определить, прослушивает ли этот порт что-либо:

$ sudo netstat -tunlp | grep 8217