2015-07-02 125 views
2

我的网站取决于服务器的亲和力。我的设置有2个节点(A和B)提供客户端请求。NGINX负载平衡器和部署

就在部署我想Nginx的负载平衡器停止发送新的请求到节点B,而已经有亲和力到节点B中的所有请求应被发送到节点B.

这可能与NGINX ?

回答

1

就像@mikhailov在评论中告诉我的,尽管服务器已从配置中删除,但当前请求将完成。 因此,这里的战术:

  • 卸下服务器(这将是下部署)从配置
  • 刷新nginx的配置

当部署已完成:

  • 再次将服务器添加到配置中
  • 重新加载nginx配置
+1

内置* ip_hash *提供会话持久性http://nginx.org/en/docs/http/load_balancing.html#nginx_load_balancing_with_ip_hash – Anatoly

+0

比克里斯托弗你的回应。在serverB上有一个活动会话的用户需要完成他们的事务,然后才能将它从负载平衡器中移除,因此需要将所有新请求重定向到服务器A.我将尝试第一个选项。 –

+0

告诉我们,如果它按照希望工作,那么! @mikhailov:是的,但在这种情况下,他不想与所有服务器共享会话,但让所有用户在禁用serverB之前先完成他们的请求。 但我认为共享会话总是一件好事。 –

0

您可以使用server "someserverip" down; 这就是我们如何做到的,它非常棒!它允许当前请求完成,然后允许所有新请求去其他服务器。然后您部署到该服务器并删除“下”。