Ich habe einen Nginx-Reverse-Proxy, der Anfragen von einem äußeren Amazon-ELB an interne ELBs weiterleitet.
Ich habe 6 Backend-Instanzen, die die Anforderungen bearbeiten. Die Site-fähigen Konfigurationen sehen folgendermaßen aus, es gibt jedoch unterschiedliche Portnummern und Proxy-Pass. Alles andere ist identisch:
server {
listen 3000;
location / {
proxy_pass http://internal-prod732r8-PrivateE-1GJ070M0745TT-348518554.eu-west-1.elb.amazonaws.com:3000;
include /etc/nginx/proxy.conf;
}
}}
Etwa alle 24 Stunden funktioniert eine der Konfigurationen nicht mehr. Alle anderen Proxys funktionieren einwandfrei. Wenn ich nginx neu starte, funktionieren alle Konfigurationen wieder. Es gibt nichts in error.log, nichts Seltsames in Access Log, Syslog oder Dmesg.
Ist das etwas bekannt? Habe ich mit meinen Proxy-Konfigurationen etwas falsch gemacht? Gibt es noch andere Protokolle, in die ich schauen kann?
nginx
reverse-proxy
user202172
quelle
quelle
Antworten:
Die Antwort auf diese Frage ist, dass ELBs manchmal die IP-Adressen ändern und nginx beim Start die Namensauflösung vornimmt.
Um dies zu beheben, befindet sich in Ihrer VPC immer ein DNS-Server mit 0,2. Wenn die lokale IP-CIDR 10.0.0.0/16 lautet, befindet sich der DNS-Server auf 10.0.0.2.
Fügen Sie dies der Nginx-Konfiguration hinzu.
Der proxy_pass muss auch als Variable definiert werden, sonst löst nginx ihn nur einmal auf. Basierend auf der obigen Konfiguration ist dies also die richtige Konfiguration:
quelle
Wenn Ihr proxy_pass nicht direkt an eine URL übergeben wurde, wie in Ihrem Beispiel gezeigt ( http://amazonaws.com ), sondern an eine Proxy-Upstream-Farm wie folgt :
Dann sind Sie weniger besorgt darüber, dass einer der Upstreams vorübergehend ausfällt. Weil sie alle den gleichen Job machen werden. Wenn einer nicht antwortet, wird der nächste für diese Antwort vertreten. Seelenfrieden.
Nginx überspringt automatisch einen ausgefallenen Computer für x Sekunden. Bis Sie es reparieren oder bis es von selbst zurückkehrt. ( http://wiki.nginx.org/HttpUpstreamModule )
Was auch immer der Grund für Ihre Unterbrechungen sein mag, durch die Verteilung auf einer vorgelagerten Farm wird dies zu einer einfacheren Einrichtung.
quelle