使用Nginx时的HTTP会话管理,如#34; Round Robin"模式负载均衡器?

时间:2016-02-01 08:18:13

标签: session nginx load-balancing round-robin

我正在尝试负载均衡" 2个Web服务器(运行Apache / PHP)"把Nginx放在他们面前。但是我需要使用Round Robin算法但是当我这样做时,我无法设置稳定的SESSIONS

(我明白了;如果我使用Round Robin,一旦我在下次加载时点击另一台服务器,SESSION信息就会丢失)

有没有正确的方法来实现这一目标?对此有什么好的行业标准建议吗?

仅供参考,我已经将这两个Web服务器放入GlusterFS中,就像在群集中一样。所以我有一个共同的存储空间(如果你打算基于此提出建议)

谢谢你提前:)

2 个答案:

答案 0 :(得分:1)

nginx手册说会话亲和力仅在商业发行版中(" sticky"指令)。如果您不使用商业发行版,则必须抓住第三方"插件"并通过支持重建服务器

("粘性"应该帮助您找到第三方插件)

答案 1 :(得分:0)

如果没有使用Round Robin的特定原因,则可以尝试使用ip_hash负载平衡机制。

upstream myapp1 {
    ip_hash;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}
  

如果需要将客户端绑定到特定的应用程序服务器(换句话说,就始终尝试选择特定服务器而言,使客户端的会话为“粘性”或“持久”)-ip-hash负载平衡可以使用机制。

有关更多信息,请参阅nginx doc for load_balancing