Ubuntu 20.04下HAProxy报cannot bind socket无法启动问题求助
故障原因分析
- 配置修改不全问题:你仅修改了
couch.tezi.app前端的监听端口为6984,但HAProxy配置中stats统计模块的监听端口仍为5984。从改端口后的报错日志可以看到Starting proxy stats: cannot bind socket [174.138.120.68:5984],同时端口查询结果显示beam.smp进程已经重新监听了0.0.0.0:5984端口,直接导致stats模块绑定失败,整个HAProxy服务启动终止。 - CouchDB服务自启问题:你临时停止CouchDB服务后,该服务配置了开机自启或故障自动重启机制,短时间内自动恢复运行重新占用了5984端口,导致你后续调整HAProxy配置时依然存在端口冲突。
- 监听IP配置不匹配问题:你的HAProxy配置中指定监听的公网IP为174.138.120.68,如果该IP未实际配置在当前服务器的网卡上,会导致端口绑定失败。你可以临时将配置中的监听IP修改为0.0.0.0测试,如果可以正常启动,则说明是IP配置匹配问题。
- systemd启动频率限制问题:HAProxy多次启动失败后,systemd触发了
Start request repeated too quickly的保护机制,即使你修改了正确的配置,短时间内发起启动请求也会被直接拦截。需要先执行systemctl reset-failed haproxy.service清除失败计数,再重新启动服务。 - 端口范围限制问题:如果系统内核参数
net.ipv4.ip_local_port_range限制了允许程序绑定的端口范围,且5984、6984不在允许范围内,也会导致绑定失败,可执行sysctl net.ipv4.ip_local_port_range查看当前系统的端口允许范围。
内容的提问来源于stack exchange,提问作者Krishna
相关产品推荐
相关产品推荐

