Haproxy 1.5x重新加载configuration,而不终止第7层会话?

伙计们,

我将我们的一个SaaS应用程序从一个郊狼点硬件负载平衡器移到一个运行nginx + haproxy的虚拟机上,haproxy处理哈希持久性。

我遇到的问题是应用程序需要会话粘性到单个后端服务器(以原始请求为准),但是当我对haproxy.cfg进行更改并执行haproxy服务重新加载时,会重新启动haproxy作为新进程并杀死这是一个旧的进程,终止任何现有的连接到特定的后端服务器,这意味着任何用户立即注销应用程序。

以下是HA-Proxy版本1.5.4 2014/09/02的haproxy后端configuration

backend webapp balance hdr(X-Real-IP) hash-type consistent mode http server server1 192.168.10.50:8080 check port 8080 server server2 192.168.10.53:8080 check port 8080 server server3 192.168.10.55:8080 check port 8080 server server4 192.168.10.62:8080 check port 8080 backup 

这对我们来说是一个很大的问题,因为当我需要对特定的后端服务器执行维护时,或者从后端池中添加/删除更多服务器时,我不能在不影响客户端应用程序体验的情况下执行此操作。

我如何dynamic地更改后端的服务器而不终止现有会话到后端如果Haproxy不会正常重新载入,我不会改变?

如果为服务器定义了一个对等体,即使它只有一个,并且是本地对等体,在haproxy的每次soft restart时,状态都应该被复制到新进程。

文档