无法启动 HAProxy

无法启动 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 来说是隐藏的。

答案1

假设这是 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,因此标签的名称不合适。

答案2

cannot bind socket [FAILED]

这通常意味着以下两件事之一:

  1. 已经有另一个守护进程在监听该端口。
  2. 您正在使用 1024 以下的端口,并以非特权用户身份运行 haproxy。

由于看起来您正在使用端口 8217 和 25565,因此 #2 并非如此。

要确定是否已有程序正在监听该端口:

$ sudo netstat -tunlp | grep 8217

相关内容