Como vários servidores de backup funcionam no Nginx?

3

Para a diretiva backup , a documentação do <> do Nginx declara no mínimo:

marks the server as a backup server. It will be passed requests when the primary servers are unavailable.

E se você tiver vários backups e o servidor principal ficar inativo, um dos backups foi nomeado como o novo primário? Ou Nginx Round Robin entre eles?

Contexto :

Eu tenho um servidor primário e vários backups, mas todas as conexões devem sempre ir para o mesmo primário ou backup. Mais ou menos como o modo de balanceamento de carga ip_hash , exceto que ele deve usar o mesmo servidor para todas as conexões e clientes .

    
por Benny Bottema 06.10.2017 / 14:25

2 respostas

1

Eu fiz um teste e parece que nginx não suporta servidores com vários backups.

upstream a {
    server main_server:8080 max_fails=2 fail_timeout=5;
    server backup1:8080 backup;
    server backup2:8080 backup;
}

Sempre que main_server:8080 estiver inativo, backup1:8080 responderá corretamente. Quando main_server:8080 e backup1:8080 estão inativos, a conexão é recusada e nunca chega a backup2:8080 .

    
por 20.10.2017 / 19:55
1

Embora não ofereça suporte a servidores com vários backups em um contexto como respondeu @Alberto Mendoza -

se você colocar os backups em outro VPS executando um balanceador de carga NGINX em seus próprios backups ... essa é uma solução que estou usando atualmente para uma rede multirregional.

upstream routing {
server main_server:8080 max_fails=2 fail_timeout=5;
server backupServer1:8080 max_fails=1 fail_timeout=5;
server backupServer2:8080 backup;

}

se o seu servidor principal não responder por 2 falhar - ele tentará o seu primeiro backup VPS - se por alguma razão estranha que esteja sendo DDOS ou por qualquer motivo estiver desativado também - ele irá para o seu terceiro VPS. Você pode continuar com a ligação em série conforme necessário.

    
por 02.12.2017 / 05:56