1

所以我有反向代理服务器,Nginx 作为代理服务器和负载均衡器工作。我最大的问题是我有 2 个应用程序后端,有时我需要关闭它们。当我在服务器关闭后端后写入时,关闭并丢失会话。如何优雅地关闭我的应用服务器之一?让 Nginx 等待所有会话完成或等待一段时间?

我的简单配置:

upstream loadbalancer {
                ip_hash;
                server          192.168.0.1:443;
                server          192.168.0.2:443;
}
4

1 回答 1

0

好的,问题是每个服务器都有自己的会话管理器,当服务器死机时,该服务器的会话数据会丢失,一个好的解决方案是进行集中式会话存储,例如同一台服务器进行负载平衡,并且其他 2 台服务器连接到它以获取会话数据,如果一台服务器关闭,而另一台服务器尝试提供由另一台服务器服务的连接,则仍然可以找到数据,因为数据存储在其他地方,这样做的常用方法是使用 memcached 作为会话存储。

至于专业人士,您可以根据需要添加和删除尽可能多的应用服务器,用户甚至不会注意到任何变化。

但缺点是,如果那台服务器死了,所有会话数据都会丢失,因为数据是集中的。

您并没有真正用您使用的语言标记您的问题,但是如果您在 google 上搜索它,您会很容易找到有用的帖子来帮助您。

于 2013-10-01T17:32:03.423 回答