haproxy 无法识别 mariadb 服务

haproxy 无法识别 mariadb 服务

我有一台 haproxy 服务器 (172.24.2.42),它重定向到一台 ip 为 172.24.2.13 的 mariadb 服务器。然后我想用另一台 ip 为 172.24.2.11 的 mariadb 服务器替换这台服务器,因为新服务器有更多的硬盘空间。这些服务器是 redhat。

我给你 haproxy.cfg

global
    log 127.0.0.1 local2
     maxconn 3000
     user haproxy
     group haproxy
     daemon

defaults
    log global
    mode http
    option  tcplog
    option  dontlognull
    option  redispatch
    timeout client 600000
    timeout connect 5000
    timeout server 600000
    retries 3
    maxconn 3000


listen db_cluster 0.0.0.0:1513
    mode tcp
    balance roundrobin
    option httpchk
    default-server port 9200 inter 2s downinter 5s rise 3 fall 2 slowstart 60s    maxconn 500 maxqueue 200
    server node-2 172.24.2.11:3306 check weight 200

当我重新启动 haproxy 服务时,显示以下消息:

Message from syslogd@localhost at Mar  2 19:25:59 ...
 haproxy[17163]: proxy db_cluster has no server available!

检查 var/log/haproxy.log,显示:

Mar  2 19:25:57 localhost haproxy[17158]: Server db_cluster/node-2 is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms. 1 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.

即使我在 172.24.2.42 上使用 putty,我也会这样做:

mysql -uuser1 -p --host=172.24.2.13 ## it logins
mysql -uuser1 -p --host=172.24.2.11 ## it logins

我也这么做了:

nmap 172.24.2.11
PORT     STATE  SERVICE
22/tcp   open   ssh
3306/tcp open   mysql
4567/tcp open   tram

防火墙启用了端口 3306,但 getenforce 显示已禁用

因此,为了使其正常工作,我将其添加到 haproxy.cfg 中:

server node-4 172.24.2.13:3306 check weight 20

然后我重启了 haproxy 服务,并且 haproxy 识别到了 mariadb 172.24.2.13。尽管如此,这并不是我想要的结果,因为服务器 172.24.2.11 必须替换为服务器 172.24.2.13。

我不知道端口 9200 有什么关系。

缺什么?

答案1

如果您不知道默认端口 9200 的用途,我建议您将其删除 - 或者将其更改为 3306(这正是您想要的)。另外,您在默认服务器行中有一个拼写错误:lowstart 60s 应该是 slowstart 60s。

您收到的错误意味着非常快速的故障,即根本没有到服务器的路由。负载均衡器上有多个 IP 吗?可能是使用了错误的 IP 作为检查源?

我会简化配置,然后重试。

相关内容