我正在尝试使用 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 是“良好”响应。