
Eu vi que configurar o balanceamento de carga com o nginx éBem fácile eu gostaria de tentar. Minha única preocupação é com as sessões: como posso aproveitar as vantagens do nginx para rotear todas as chamadas subsequentes de um cliente para o mesmo servidor para obter aderência à sessão?
Obrigado
Responder1
use a diretiva ip_hash
Responder2
Como alternativa você pode olharMódulo pegajoso Nginx
Ao lidar com vários servidores backend, às vezes é útil que um cliente (navegador) seja sempre atendido pelo mesmo servidor backend (para persistência de sessão, por exemplo).
Usar uma persistência por IP (com o módulo upstream ip_hash) talvez não seja uma boa ideia porque pode haver situações em que muitos navegadores diferentes vêm com o mesmo endereço IP (atrás de proxies) e o sistema de balanceamento de carga não será justo .
Usar um cookie para rastrear o servidor upstream torna cada navegador único.
Quando o módulo sticky não pode ser aplicado, ele volta para o Round Robin Upstream clássico ou retorna um "Bad Gateway" (dependendo do sinalizador no_fallback).
O módulo fixo não pode ser aplicado quando os cookies não são suportados pelo navegador
Responder3
ip_hash é a regra de balanceamento de carga do nginx para sessão. No entanto, o servidor nginx deve obter o IP real. se você usar o squid como servidor frontal, o servidor nginx obterá o IP do squid. Em seguida, o nginx deve direcionar o servidor real. Se houver outros servidores de balanceamento de carga após o servidor nginx, a sessão não será enviada no mesmo servidor real.