É possível equilibrar a carga entre vários balanceadores de carga Nginx sem usar um balanceador de carga de hardware?

3

Pretendo equilibrar a carga entre os meus servidores de aplicativos usando um servidor Nginx separado como um balanceador de carga de software. Mas, na verdade, é porque um balanceador de carga na frente dos servidores de aplicativos permite que eu atualize um servidor de aplicativos (SO, aplicativo, etc.) quando quiser sem tempo de inatividade.

Então percebi, como atualizo o balanceador de carga? ou seja, meu site ainda vai ficar inativo quando eu precisar atualizar o sistema operacional e o Nginx no servidor que atua como o balanceador de carga do meu aplicativo.

Como o balanceamento de carga está fora de questão, fiquei me perguntando se é possível conectar dois servidores Nginx juntos para equilibrar a carga entre os servidores de aplicativos, permitindo que eu atualize um de cada vez, quando preciso, sem causando tempo de inatividade.

Isso é realista?

    
por its_me 20.09.2013 / 19:31

2 respostas

3

Você precisa de um ponto de acesso comum. Isso deve ser feito com endereços virtuais ou roteamento. A maneira melhor / mais fácil de realizar isso sem hardware e protocolos adicionais é usar o LVS .

O LVS é um balanceador de IP no nível do kernel que pode fazer o trabalho e é muito rápido e eficaz, tem uma taxa de transferência impressionante. Você também pode configurar o firewall no mesmo nó.

Para sua configuração, a maneira mais fácil é configurar o LVS-NAT com dois nós (backup ativo), ele suporta pulsação entre nós e usa IP virtual para ambos os lados. Se o nó mestre falhar, então um escravo enviará a atualização de arp para o switch e o endereço IP de controle.

Existem muitos utilitários de configuração , algumas distribuições possuem utilitários sofisticados para configuração, ex. RHEL / Centos / Fedora tem GUI da piranha.

Para servidores reais, você pode configurar tempos de espera, agendamento, taxas, monitoramento, persistência de sessão, etc. Bastante flexível.

Além disso, é bom compartilhar informações da sessão entre nós.

Documentosrecomendados:

OficialLVS: link

wiki LVS: link

    
por 20.09.2013 / 19:58
0

isso realmente depende da maneira como você hospeda suas máquinas. os melhores hosters baratos que alugam servidores de hardware ou máquinas virtuais oferecem algum tipo de failover-ip, que pode ser roteado para diferentes servidores; geralmente comutável manualmente (ou automatizado através de alguma ferramenta de monitoramento, mas isso não é recomendado). isso é confortável o suficiente para configurações simples.

se você usar algum tipo de servidor e executar servidores com várias nics, poderá configurar sua própria rede entre máquinas com nics alfandegados, redes locais, links diretos entre servidores, etc., você poderá usar uma solução como keepalived ou marca-passo. mas a configuração e o ajuste devem ser feitos por pessoas familiarizadas com isso (minha experiência). esta solução, se configurada corretamente, funciona completamente automatizada e sólida. ips e serviços podem ser alternados manualmente sem perda de pacotes; muito útil para atualizações, manutenção e reinicializações.

ambas as soluções ainda são soluções de HA do homem pobre, mas ainda são melhores do que nada. o ponto é, ter uma solução, mesmo que seja limitada de alguma forma.

btw, o que você está pedindo não é balanceamento de carga, mas failover; apenas para os registros:)

    
por 20.09.2013 / 20:35