我有一个简单的设置,包括在一台服务器上运行的HaProxy,它将请求定向到两个后端服务器。
我现在仍然坚持使用源平衡方法,因为每个请求都需要转到同一台服务器,因为它上面运行的是应用程序。
但是,在过去,我有第三个后端服务器,有些用户在从配置文件中删除并重新启动HaProxy后几天仍被定向到。
另外,如果我查看我的HaProxy统计数据,我可以看到大部分用户被定向到一个服务器而不是另一个服务器 - 换句话说,它不是真正的负载平衡只是记住哪些服务器使用是第一次连接到。
我想要实现的是源平衡,但可能会有一个短暂的超时,以便会话过期,然后在以后重新分配给另一台服务器。这可能吗 ?为了更均匀地分散用户并确保将用户定向到已被删除的服务器,我需要做出哪些更改?
我使用的是HaProxy 1.5.8,几乎是默认设置:
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend http_front
bind *:2222
stats uri /haproxy?stats
default_backend http_back
backend http_back
balance source
server Private1 A.B.C.D:8080 check
server Private2 E.F.G.H:8080 check