Nginx负载均衡与会话

我已经看到,使用nginx设置负载平衡是非常容易的 ,我想试试看。 我唯一关心的是会话:我怎样才能利用nginx将来自客户端的所有后续呼叫路由到同一台服务器,以实现会话粘性?

谢谢

使用ip_hash指令

作为select,你可以看看Nginx的粘性模块

在处理多个后端服务器时,一个客户端(浏览器)始终由相同的后端服务器提供服务(例如,会话持久性)有时很有用。

使用持久性IP(使用ip_hash上游模块)可能不是一个好主意,因为可能会出现许多不同浏览器使用相同IP地址(代理后面)并且负载均衡系统不公平的情况。

使用cookie来跟踪上游服务器使得每个浏览器都是唯一的。

当粘性模块无法应用时,它会切换回经典的Round Robin Upstream或返回“Bad Gateway”(取决于no_fallback标志)。

当浏览器不支持cookie时,粘滞模块不能应用

ip_hash是nginx会话的负载平衡规则。 但是,nginx服务器必须得到真正的IP。 如果你使用squid作为前端服务器,那么nginx服务器将获得squid的IP。 接下来,nginx必须指挥真实的服务器。 如果在nginx服务器之后还有其他的负载均衡服务器,那么会话将不会在相同的真实服务器上发送。