Nginx:具有粘性 session 的最少连接

标签 nginx load-balancing reverse-proxy

我使用 nginx 作为反向代理并需要粘性 session ,因此我使用 ip_hash 作为平衡算法。

我更愿意使用least_conn(最少连接)作为平衡算法。是否可以通过粘性 session 实现最少的连接?

最佳答案

从纯粹的负载平衡的角度来看,启用持久性和最少连接没有任何意义,因为持久性是负载平衡的一个异常(exception):一旦启用持久性,负载平衡器就不会不再使用负载平衡算法,因为它知道将请求路由到哪里。 当启用持久性时,负载均衡算法仅用于路由每个用户的第一个请求。 在 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:具有粘性 session 的最少连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31797593/

相关文章:

websocket - Google Cloud 中的负载平衡 websocket 连接

java - Apache 负载均衡器与纯 java 应用程序

java - Netty过滤反向代理

nginx - 在本地网络中访问 NGINX 虚拟主机

node.js - 当我拥有 Kubernetes 时,nginx 的意义何在?

css - 如何在 Windows 上将 docker nginx 与 express 和 react 应用程序连接起来

apache - 仅在第一个节点发生故障时才向第二个 tomcat 节点发送请求

java - nginx - Spring Boot 应用程序的多个反向代理(启用 Spring Security)

elasticsearch - 如何通过 HAproxy 访问 Kibana 仪表板

javascript - Wordpress 和 Varnish 破坏 loadscript.php 的问题