Nginx后端关闭而不丢失会话

Nginx后端关闭而不丢失会话,nginx,Nginx,所以我使用反向代理服务器,其中Nginx充当代理服务器和负载平衡器。我最大的问题是,我有两个应用程序后端,有时需要关闭它们。当我在服务器关闭后端后写入时,关闭并释放会话。我如何才能优雅地关闭我的一个应用服务器?让Nginx在所有会话完成时等待,还是等待一段时间 我的简单配置: upstream loadbalancer { ip_hash; server 192.168.0.1:443;

所以我使用反向代理服务器,其中Nginx充当代理服务器和负载平衡器。我最大的问题是,我有两个应用程序后端,有时需要关闭它们。当我在服务器关闭后端后写入时,关闭并释放会话。我如何才能优雅地关闭我的一个应用服务器?让Nginx在所有会话完成时等待,还是等待一段时间

我的简单配置:

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

好的,问题是每台服务器都有自己的会话管理器,当服务器死机时,该服务器的会话数据丢失,一个好的解决方案是建立一个集中的会话存储,例如,同一台服务器进行负载平衡,另外两台服务器连接到该服务器以获取会话数据,如果一台服务器停机,而另一台服务器尝试为另一台服务器所服务的连接提供服务,那么数据仍然会被找到,因为数据存储在别处,常用的方法是使用memcached作为会话存储

至于专业人士,你可以添加和删除任意数量的应用服务器,用户甚至不会注意到任何变化

但对于缺点,如果单个服务器死亡,所有会话数据都将丢失,因为数据是集中的


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

请问这个问题。服务器死机时会丢失会话不是问题。当我对其中一台应用服务器进行维护时,我想告诉Nginx,它不会向2号服务器提供新会话,而是向1号服务器提供所有新会话,2号服务器中的所有旧会话必须保留到过期。好吧,另一个想法是不要将服务器标记为关闭,只需降低其优先级,我不知道它是否会将旧会话连接到原始服务器。当降低优先级时,Nginx开始将旧会话请求发送到优先级更高的新服务器,即使我有ip_散列。