nginx non riesce a risolvere i nomi a monte al ricaricamento anche se FANNO una risoluzione da parte del sistema operativo


9

Quando si ricarica config (in particolare per proxy_pass) - occasionalmente si vedrà: nginx: host [emerg] non trovato in upstream

Tuttavia - il nome del server upstream verrà risolto nel sistema operativo (linux) - solo nginx sembra avere questo problema.

Questa sembra essere una regressione recente, poiché non sembrava accadere prima delle versioni 1.0.10.

Qualcuno l'ha notato di recente?

Cercando di restringere i luoghi in cui cercare.

Risposte:


6

Nginx memorizza internamente nella cache DNS per 5 minuti (non sono sicuro che sia configurabile nelle versioni successive). Forse il tuo resolver non funziona per qualche motivo, quindi Nginx memorizza nella cache questo risultato.

Ho visto questo sui sistemi con IPv6 abilitato poiché, per impostazione predefinita, il resolver richiede in parallelo sia i record IPv4 che IPv6. Questo può essere visto come un diluvio dal risolutore che causa un problema temporaneo con il DNS. Ho visto questo popup su una casella con molto traffico e-mail durante la verifica del nome di dominio.

Prova ad aggiungere:

  options single-request

su /etc/resolv.conf

Questo fa sì che le ricerche IPv6 / v4 vengano eseguite in sequenza.


Grazie per la tua risposta. Si è scoperto che si è trattato di un errore nel confondere i nomi host nei file di configurazione. Ops. Ma la tua risposta in realtà è davvero utile - quindi la segnerò come quella giusta - poiché sicuramente causerebbe problemi al DNS (espellendolo con richieste).
Michael Neale,

2
Ho lo stesso problema - cosa hai fatto esattamente nei file di configurazione per risolvere questo problema (grazie in anticipo)
Zabs

Ora puoi aggiungere l' value=30sopzione a resolverper definire per quanto tempo un indirizzo IP risolto dovrebbe essere tenuto nella resolvercache.
Alexis Wilke,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.