nginx kann Upstream-Namen beim Neuladen nicht auflösen, selbst wenn sie vom Betriebssystem aufgelöst werden

9

Beim erneuten Laden von config (speziell für proxy_pass) wird gelegentlich Folgendes angezeigt: nginx: [emerg] Host wird im Upstream nicht gefunden

Allerdings - der Name des Upstream-Servers wird im Betriebssystem (Linux) aufgelöst - scheint nur Nginx dieses Problem zu haben.

Dies scheint eine kürzliche Regression zu sein - da dies vor der Version 1.0.10 nicht der Fall zu sein schien.

Hat das kürzlich jemand bemerkt?

Der Versuch, die zu suchenden Orte einzugrenzen.

Michael Neale
quelle

Antworten:

6

Nginx speichert DNS intern für 5 Minuten zwischen (nicht sicher, ob dies in späteren Versionen konfigurierbar ist). Möglicherweise fällt Ihr Resolver aus irgendeinem Grund aus, dann speichert Nginx dieses Ergebnis zwischen.

Ich habe dies auf Systemen mit aktiviertem IPv6 gesehen, da der Resolver standardmäßig parallel IPv4- und IPv6-Einträge anfordert. Dies kann vom Resolver als Überschwemmung angesehen werden, die zu einem vorübergehenden DNS-Problem führt. Ich habe dieses Popup auf einer Box mit viel E-Mail-Verkehr gesehen, als ich den Domainnamen überprüft habe.

Versuchen Sie hinzuzufügen:

  options single-request

zu /etc/resolv.conf

Dies führt dazu, dass IPv6 / v4-Suchvorgänge nacheinander durchgeführt werden.

jeffatrackaid
quelle
Danke für deine Antwort. Es stellte sich heraus, dass dies ein Fehler beim Durcheinander der Hostnamen in den Konfigurationsdateien war. Hoppla. Aber Ihre Antwort ist sowieso wirklich nützlich - also werde ich sie als die richtige markieren - da sie mit Sicherheit DNS-Probleme verursachen würde (sie mit Anfragen in die Luft jagen).
Michael Neale
2
Ich habe das gleiche Problem - was genau haben Sie in den Konfigurationsdateien getan, um dies zu beheben (danke im Voraus)
Zabs
Sie können jetzt die value=30sOption hinzufügen , resolverum festzulegen, wie lange eine aufgelöste IP-Adresse in den resolverCaches des Caches aufbewahrt werden soll.
Alexis Wilke