Balanceamento de carga e alta disponibilidade (HA) são duas coisas diferentes. Sim, você pode configurar o equilíbrio de carga, usando NginX, para dois ou mais nós, independentemente de onde eles estão localizados.
Para o equilíbrio de carga, você tem:
DNS - > IP de serviço - > Balanceador de carga - > AppSrv1, AppSrv2, ..., AppSrvn - > Um ou mais backends
Para alta disponibilidade (HA) você tem:
- Ativo / Passivo:
Situação normal de trabalho:
DNS - > IP de serviço virtual (atribuído em LB1) - > AppSrv1, AppSrv2, ..., AppSrvn - > Um ou mais backends Se LoadBalancer1 (LB1) quebra:
Hartbeat atribui o VirtualIP ao LB2
DNS - > IP de serviço virtual (atribuído no LB2) - > AppSrv1, AppSrv2, ..., AppSrvn - > Um ou mais backends - Ativo / Ativo:
DNS - > VirtIP1 (LB1), VirtIP2 (LB2), VirtIPn (LBn) - > AppSrv1, AppSrv2, ..., AppSrvn - > Um ou mais backends
Basicamente, o Load Balancer cria hashes, com base no IP do cliente, e encaminha todo o tráfego com esse hash para o mesmo AppSrv (para preservar as sessões, etc.). Você pode configurar o AppSrv, o failover AppSrv, etc
Você pode fazer uma configuração com LB em todos os seus VPSs, que encaminha o tráfego para o AppSrv local (mesmo VPS) e, se esse AppSrv estiver inacessível, encaminhará para o VPS de "backup". Mas existem problemas com essa implementação em muitos níveis ...