nginx falhando ao resolver nomes upstream ao recarregar, mesmo que eles resolvam pelo SO

9

Ao recarregar a configuração (especificamente para proxy_pass) - ocasionalmente isso será visto: host nginx: [emerg] não encontrado no upstream

No entanto - o nome do servidor upstream resolverá no sistema operacional (linux) - apenas o nginx parece ter esse problema.

Esta parece ser uma regressão recente - pois não parecia ter acontecido antes das versões 1.0.10.

Alguém notou isso recentemente?

Tentando restringir lugares para pesquisar.

Michael Neale
fonte

Respostas:

6

O Nginx armazena em cache o DNS internamente por 5 minutos (não tenho certeza se isso é configurável nas versões posteriores). Talvez o seu resolvedor esteja falhando por algum motivo, o Nginx armazena em cache esse resultado.

Eu já vi isso em sistemas com IPv6 ativado, já que, por padrão, o resolvedor solicita os registros IPv4 e IPv6 em paralelo. Isso pode ser visto como uma inundação pelo resolvedor, resultando em um problema temporário de DNS. Vi esse pop-up em uma caixa com muito tráfego de email ao fazer a verificação de nome de domínio.

Tente adicionar:

  options single-request

para /etc/resolv.conf

Isso faz com que as pesquisas do IPv6 / v4 sejam feitas seqüencialmente.

jeffatrackaid
fonte
Obrigado pela sua resposta. Aconteceu que houve um erro ao atrapalhar os nomes de host nos arquivos de configuração. Opa Mas sua resposta é realmente realmente útil de qualquer maneira - então eu a marcarei como a correta -, pois isso causaria problemas de DNS, com certeza (enviando solicitações).
Michael Neale 31/01
2
Eu tenho o mesmo problema - o que exatamente você fez nos arquivos de configuração para corrigir isso (obrigado antecipadamente)
Zabs
Agora você pode adicionar a value=30sopção ao resolverpara definir por quanto tempo um endereço IP resolvido deve ser mantido nos resolvercaches do.
Alexis Wilke #