Haproxy [24890]:代理场没有可用的服务器

Haproxy [24890]:代理场没有可用的服务器

我正在尝试使用 haproxy 设置集群,我有一个负载均衡器和两个节点。不知何故 haproxy 只占用一个节点。它运行良好,直到一个 XXX.XX.X.196 启动并运行,但只要我关闭它并尝试再次启动 haproxy,它就会出现此错误。

当 XXX.XX.X.196 上的 tomcat 关闭时,我无法处理请求,但我仍有 XXX.XX.X.193 上的 tomcat 正在运行。

XXX.XX.X.189:负载均衡器

XXX.XX.X.193:节点 1,运行 Apache tomcat

XXX.XX.X.196:节点 2,运行 Apache tomcat

 global
        log         127.0.0.1 local2 debug #log using syslog service on localhost
        maxconn     4096 # Total Max Connections. This is dependent on ulimit
        daemon
defaults
    mode        http
    maxconn     4096
    clitimeout  60000
    srvtimeout  30000
    contimeout  4000
    option      httpclose # Disable Keepalive
    log         global
        option      httplog

listen  farm XXX.XX.X.189:80
    mode http
    stats uri /haproxy #show haproxy colsole
    balance roundrobin
       cookie farmID insert #assign a farmID coockie to each client
    option httpclose
    option httpchk
    option forwardfor
    ## Define your servers to balance
    server node1 XXX.XX.X.193:8081 cookie farmID_node1 check
    server node2 XXX.XX.X.196:8081 cookie farmID_node2 check

谢谢。

答案1

您的负载均衡器可以“看到”两个应用服务器吗?即,您的防火墙设置是否允许负载均衡器通过端口 8081 连接到应用服务器。从负载均衡器尝试以下操作:

curl http://XXX.XX.X.193:8081

和 ...

curl http://XXX.XX.X.196:8081

(显然您需要填写 IP 地址)。

您还应该检查 tomcat 日志,看看它对检查请求返回了什么。2xx 或 3xx 是“良好”响应。

相关内容