所以我有反向代理服务器,其中Nginx作为代理服务器和负载均衡器。我最大的问题是,我有2个app后端,我有时需要关机。当我在服务器 向下 后写入后端时,关闭并丢失会话。我怎样才能优雅地关闭我的一个应用服务器?那么Nginx会在所有会话完成或等待一段时间后等待吗?
我的简单配置:
upstream loadbalancer {
ip_hash;
server 192.168.0.1:443;
server 192.168.0.2:443;
}
答案 0 :(得分:0)
好的问题是每个服务器都有自己的会话管理器,当服务器死了会话数据丢失时,一个好的解决方案是建立一个集中的会话存储,例如加载的同一个服务器平衡,其他2个服务器连接到它以获取会话数据,如果一个服务器关闭,另一个服务器尝试提供由另一个服务器服务的连接,那么仍然会找到数据,因为数据是存储在别处的常用方法是使用memcached作为会话存储。
对于专业人士,您可以根据需要添加和删除尽可能多的应用服务器,用户甚至不会注意到任何更改。
但是对于缺点,如果该单个服务器死亡,则所有会话数据都会丢失,因为数据是集中的。
您还没有使用您使用的语言标记您的问题,但如果您在Google上搜索它,您可以轻松找到有用的帖子来帮助您。