在“循环”模式负载均衡器中使用 Nginx 时进行 HTTP 会话管理?

在“循环”模式负载均衡器中使用 Nginx 时进行 HTTP 会话管理?

我试图通过将 nginx 放在“2 个 Web 服务器(运行 Apache/PHP)”前面来平衡负载。但我需要使用循环算法但当我这样做时我无法获得稳定的会话

(我明白;如果我使用循环法,一旦我在下次加载时到达另一台服务器,会话信息就会丢失)

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

仅供参考,我已经将这 2 个 Web 服务器放入GlusterFS集群中。所以我有一个公共存储(如果你要基于此提出一些建议)

答案1

尽管这是一篇旧帖子,但它仍然具有很高的 SEO 评级,因此试图回答。

虽然您可以利用集群存储,但您应该始终在单个内存段中处理会话持久性。

对于您的情况,最简单的方法可能是使用一种可能的 NGINX 方法来保持持久的目标上游服务器。最简单的仍然是ip_hash指令,因为它可能很适合您的需求。

对于业务需求,我建议订购商业订阅并使用粘性指令,它还享有许多其他优势,包括广泛的支持。

另一种选择是使用一些第三方(开源)插件(例如nginx-sticky-module-ng)创建相同的功能,无需支付订阅费用。

相关内容