Nginx:与粘性会话的最少连接
Nginx: Least connections with sticky sessions
我使用 nginx 作为反向代理并且需要粘性会话,所以我使用 ip_hash 作为平衡算法。
我更愿意使用 least_conn(最少连接数)作为平衡算法。有没有可能用粘性会话做最少的连接?
从纯负载均衡的角度来看,启用持久化和最小连接没有任何意义,因为持久化是负载均衡的一个例外:一旦启用持久化,负载均衡器就赢了' 不再使用负载平衡算法,因为它知道将请求路由到哪里。
启用持久性后,负载平衡算法仅用于路由每个用户的第一个请求。
在 Web 流量上,每台服务器的连接数每毫秒都会发生很大变化...因此,这就是为什么在需要持久性时基于此类指标来平衡用户没有多大意义。
这里有更多关于持久性和负载平衡的信息:
http://blog.haproxy.com/2012/03/29/load-balancing-affinity-persistence-sticky-sessions-what-you-need-to-know/
顺便说一下,不幸的是,您刚刚体会到可以进行负载平衡的软件 (nginx) 与真正的负载平衡器之间的区别...
为此只需切换到 HAProxy:
backend bk_myapp
cookie MyAPP insert indirect nocache
balance leastconn
server srv1 10.0.0.1:80 check cookie srv1
server srv2 10.0.0.2:80 check cookie srv2
巴蒂斯特
我使用 nginx 作为反向代理并且需要粘性会话,所以我使用 ip_hash 作为平衡算法。
我更愿意使用 least_conn(最少连接数)作为平衡算法。有没有可能用粘性会话做最少的连接?
从纯负载均衡的角度来看,启用持久化和最小连接没有任何意义,因为持久化是负载均衡的一个例外:一旦启用持久化,负载均衡器就赢了' 不再使用负载平衡算法,因为它知道将请求路由到哪里。 启用持久性后,负载平衡算法仅用于路由每个用户的第一个请求。 在 Web 流量上,每台服务器的连接数每毫秒都会发生很大变化...因此,这就是为什么在需要持久性时基于此类指标来平衡用户没有多大意义。
这里有更多关于持久性和负载平衡的信息: http://blog.haproxy.com/2012/03/29/load-balancing-affinity-persistence-sticky-sessions-what-you-need-to-know/
顺便说一下,不幸的是,您刚刚体会到可以进行负载平衡的软件 (nginx) 与真正的负载平衡器之间的区别...
为此只需切换到 HAProxy:
backend bk_myapp
cookie MyAPP insert indirect nocache
balance leastconn
server srv1 10.0.0.1:80 check cookie srv1
server srv2 10.0.0.2:80 check cookie srv2
巴蒂斯特