Se você definir um par para o servidor, mesmo que seja apenas um e seja o local, a cada soft restart
de haproxy, o estado deverá ser replicado para o novo processo.
Gente,
Mudei um dos nossos aplicativos SaaS de um balanceador de carga de hardware do ponto coiote para um VM executando nginx + haproxy com o haproxy lidando com persistência de hash.
O problema que estou encontrando é o aplicativo requer aderência da sessão para um único servidor de back-end (o que leva a solicitação original), mas quando eu faço uma mudança para haproxy.cfg e fazer um serviço haproxy recarregar reinicia haproxy como um novo processa e mata o processo antigo que finaliza todas as conexões existentes com servidores backend específicos, o que significa que qualquer usuário é imediatamente desconectado do aplicativo.
Aqui está a configuração do backend haproxy para o HA-Proxy versão 1.5.4 2014/09/02
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
Este é um grande problema para nós, pois quando preciso realizar manutenção em um servidor de back-end específico ou adicionar / remover servidores adicionais do pool de back-end, não posso fazê-lo sem afetar a experiência do cliente no aplicativo.
Como posso dinamicamente fazer alterações nos servidores no back-end sem encerrar as sessões existentes nos backends? Não estou mudando se o Haproxy não for recarregado normalmente?
Se você definir um par para o servidor, mesmo que seja apenas um e seja o local, a cada soft restart
de haproxy, o estado deverá ser replicado para o novo processo.