Obtenha o nginx para recarregar com upstream de backup quando não houver upstreams ativos

1

é possível recarregar o nginx quando não houver upstreams ativos presentes, em outras palavras, se não houver upstream ativo, o nginx deve rotear as chamadas para upstreams de backup automaticamente.

Configuração normal - >

upstream myproject {
    server 127.0.0.1:8000;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002 backup;    
    server 127.0.0.1:8003 backup;
}

Eu quero poder recarregar o nginx em algo como - >

upstream myproject {
    server 127.0.0.1:8002 backup;    
    server 127.0.0.1:8003 backup;
}

Atualmente, o nginx lança um erro dizendo que nenhum endereço upstream foi encontrado no bloco upstream acima.

Atualizado - Eu quero fazer o nginx inteligente. Digamos, as portas 8000/8001 estão em um dc e as portas 8002/8003 estão em segundo dc. Se as primeiras caixas dc não estiverem disponíveis, o nginx deve encaminhar automaticamente o tráfego para o segundo dc

    
por vevoVT 16.07.2018 / 07:55

1 resposta

0

O sinalizador backup indica que ele deve ser usado quando o principal não estiver enviando a resposta, a partir do documentação oficial do módulo upstream :

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

Basta remover o sinalizador backup do primeiro servidor, caso contrário, você não está definindo um servidor principal .

upstream myproject {
    server 127.0.0.1:8002;    
    server 127.0.0.1:8003 backup;
}

Por curiosidade, por que você deixaria os dois como backup? O que você está tentando realizar, balanceamento de carga ou capacidade de failover?

    
por 16.07.2018 / 08:15

Tags