Wie behebt man den NGINX-Fehler 502 Bad Gateway? (7 Methoden)
Veröffentlicht: 2023-04-20Nginx ist ein bekannter Open-Source-Webserver, der aufgrund seiner Leistung, Skalierbarkeit und Flexibilität sehr beliebt ist. Ähnlich wie bei anderen Webservern kann es bei Nginx jedoch zu Fehlern kommen, die seine Fähigkeit beeinträchtigen, Inhalte an Clients zu liefern. Ein solcher Fehler ist der 502 Bad Gateway Nginx-Fehler.
Auf Fehler zu stoßen kann ziemlich frustrierend und verwirrend sein, besonders wenn Sie technisch nicht versiert sind. Möglicherweise stoßen Sie auf mehrere ähnliche auffällige Fehler, z. B. den weißen Bildschirm des Todes und den Fehler beim Herstellen der Datenbankverbindung. Aber 502 Bad Gateway Nginx Error ist sehr beliebt.
Es kann mehrere mögliche Gründe dafür geben, dass dieser Fehler auftritt, und daher verschiedene Möglichkeiten, ihn zu beheben. In diesem Beitrag werden wir Ihnen sagen, was 502 Bad Gateway Nginx wirklich bedeutet, was die möglichen Ursachen sind und was die beste Methode zur Fehlerbehebung ist, die Sie befolgen müssen.
Lassen Sie uns anfangen!
Lesen Sie: 15 Methoden zum Beheben des Fehlers 502 Bad Gateway auf Ihrer Website
Was ist ein 502 Bad Gateway Nginx-Fehler?
Ein 502 Bad Gateway Nginx-Fehler ist ein HTTP-Statuscode, der einen Server darstellt, der als Gateway oder Proxy-Server fungiert und keine gültige Antwort von einem Upstream-Server erhält. Im Fall von Nginx tritt ein 502-Bad-Gateway-Fehler auf, wenn der Server keine Verbindung mit dem Upstream-Server herstellen kann oder wenn der Upstream-Server eine ungültige Antwort zurückgibt.
Dieser Fehler tritt häufig auf, wenn versucht wird, auf eine Website oder Webanwendung zuzugreifen, die hinter einem Reverse-Proxy oder Load Balancer gehostet wird.
Es gibt mehrere Variationen von 502 Bad Gateway Nginx Error, die Sie möglicherweise auf verschiedenen Websites finden. Zum Beispiel:
- HTTP-Fehler 502 – Bad Gateway
- 502 Proxy-Fehler
- 502 Bad Gateway
- 502 Dienst vorübergehend überlastet
- HTTP-502
- 502 Bad Gateway nginx
- Fehler 502
Was verursacht einen 502 Bad Gateway Nginx-Fehler?
Es kann mehrere Gründe geben, warum ein 502 Bad Gateway-Fehler in Nginx auftreten kann, aber hier sind einige der häufigsten unten aufgeführt:
Server überlastet
Wenn ein Back-End-Server zu viele Anfragen erhält, kann er überlastet werden und nicht innerhalb des Timeout-Zeitraums antworten. Dies verursacht einen 502-Fehler, da der Upstream-Server die Anfrage des Clients nicht erfüllen kann. Die richtige Servergröße, Ressourcenzuweisung, Lastverteilung und Skalierungsstrategien können eine Serverüberlastung verhindern.
Verbindungsprobleme
- Verbindungsprobleme können einen 502 Bad Gateway-Fehler in Nginx verursachen, wenn ein Problem mit der Netzwerkverbindung zwischen dem Reverse-Proxy-Server und dem Backend-Server besteht.
- Dies kann aufgrund von Netzwerküberlastung, falsch konfigurierten Netzwerkeinstellungen oder Hardwarefehlern passieren.
- Wenn der Reverse-Proxy-Server versucht, eine Anfrage an den Back-End-Server weiterzuleiten, aber keine Verbindung herstellen kann, gibt er einen 502-Fehler an den Client zurück.
- Der Fehler tritt auf, weil der Reverse-Proxy-Server als Vermittler zwischen dem Client und dem Back-End-Server fungiert und keine Verbindung zum Back-End-Server herstellen kann, um die Anforderung des Clients zu erfüllen.
- Die Fehlerbehebung bei Netzwerkeinstellungen, das Überprüfen von Firewall-Regeln und das Überwachen des Netzwerkverkehrs können helfen, das Problem zu beheben.
DNS-Probleme
- DNS-Probleme können einen 502 Bad Gateway-Fehler in Nginx verursachen, wenn die DNS-Auflösung für den Backend-Server fehlschlägt.
- Dies kann aufgrund falscher DNS-Konfigurationen, DNS-Serverausfällen oder DNS-Caching-Problemen passieren.
- Wenn ein Client eine Anfrage an den Reverse-Proxy-Server sendet, muss der Reverse-Proxy-Server den Domänennamen des Back-End-Servers in eine IP-Adresse auflösen.
- Wenn die DNS-Auflösung fehlschlägt, kann der Reverse-Proxy-Server die Anforderung nicht an den Back-End-Server weiterleiten, was dazu führt, dass ein 502-Fehler an den Client zurückgegeben wird.
Lesen Sie: Was ist DNS?
Firewall-Einschränkungen
- Firewall-Einschränkungen können einen 502 Bad Gateway-Fehler in Nginx verursachen, wenn eine Firewall die Verbindung zwischen dem Reverse-Proxy-Server und dem Backend-Server blockiert.
- Dies kann passieren, wenn die Firewall so konfiguriert ist, dass der Datenverkehr zu und von bestimmten IP-Adressen oder Ports eingeschränkt wird.
- Wenn der Reverse-Proxy-Server versucht, eine Verbindung zum Back-End-Server herzustellen, die Firewall die Verbindung jedoch blockiert, gibt er einen 502-Fehler an den Client zurück.
- Dies liegt daran, dass der Reverse-Proxy-Server als Vermittler zwischen dem Client und dem Back-End-Server fungiert und keine Verbindung mit dem Back-End-Server herstellen kann, um die Anforderung des Clients zu erfüllen.
- Um Firewall-bezogene Probleme zu beheben, die einen 502-Fehler verursachen, müssen Sie möglicherweise Firewall-Regeln anpassen, damit der Datenverkehr zwischen dem Reverse-Proxy und den Back-End-Servern fließen kann.
Softwarefehler
- Ein 502 Bad Gateway-Fehler kann aufgrund eines Softwarefehlers oder einer Fehlkonfiguration im Reverse-Proxy-Server oder Backend-Server auftreten.
- Dieser Fehler kann aufgrund von Codierungsfehlern oder Fehlkonfigurationen von Servermodulen oder Anwendungen auftreten.
- Wenn die Software oder Konfiguration eines der Server einen Fehler enthält, kann es sein, dass Anfragen nicht bearbeitet oder nicht innerhalb der Zeitüberschreitung beantwortet werden, was dazu führt, dass ein 502-Fehler an den Client zurückgegeben wird.
- Um softwarebezogene Probleme zu beheben, die einen 502-Fehler verursachen, müssen Sie möglicherweise die Protokolle sowohl des Reverse-Proxy- als auch des Back-End-Servers untersuchen, um Fehler oder Warnmeldungen zu identifizieren.
PHP-FMP braucht zu lange, um zu antworten
- PHP-FPM (FastCGI Process Manager) kann einen 502 Bad Gateway-Fehler in Nginx verursachen, wenn es nicht innerhalb des Timeout-Zeitraums antwortet oder auf einen kritischen Fehler stößt.
- Dieser Fehler kann aufgrund unzureichender Ressourcen, einer Fehlkonfiguration oder eines Fehlers im PHP-Code auftreten.
- PHP-FPM ist eine beliebte Methode zum Ausführen von PHP-Anwendungen in Nginx, bei der Nginx die Anfrage an PHP-FPM sendet und den PHP-Code verarbeitet und das Ergebnis an Nginx zurückgibt, das dann die Antwort an den Client zurücksendet.
- Um PHP-FPM-bezogene Probleme zu beheben, müssen Sie möglicherweise die PHP-FPM-Konfiguration anpassen, um die Anzahl der Prozesse oder Threads zu erhöhen oder die Timeout-Einstellungen anzupassen.
- Möglicherweise müssen Sie auch den PHP-Code untersuchen, um Fehler oder Leistungsprobleme zu identifizieren und zu beheben.
- Darüber hinaus kann die Überwachung der Serverprotokolle und Systemressourcen dabei helfen, Muster oder Trends zu identifizieren, die auf ein größeres Problem mit PHP-FPM hinweisen könnten.
Lesen Sie: Wie behebt man den HTTP 504 Gateway Timeout-Fehler?
Wie behebt man ein 502 Bad Gateway Nginx?
Hier sind einige der besten Lösungen, die Sie befolgen können, um einen 502 Bad Gateway Nginx-Fehler zu beheben:
- Überprüfen Sie den Status von Nginx
- Überprüfen Sie den Status des Back-End-Servers
- Überprüfen Sie die DNS-Konfiguration
- Überprüfen Sie die Firewall-Konfiguration
- Erhöhen Sie die Puffergröße
- Starten Sie den Nginx-Server neu
- Überprüfen Sie den PHP-FPM-Status
Überprüfen Sie den Status von Nginx
Als erstes müssen Sie überprüfen, ob Nginx ausgeführt wird und auf Anfragen reagiert oder nicht. Führen Sie dazu den folgenden Befehl aus:
1 |
systemctl status nginx |
Wenn Nginx ausgeführt wird, erhalten Sie eine Ausgabenachricht in etwa wie folgt:
nginx.service - The nginx HTTP Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-10-11 10:25:41 UTC; 1 days ago
Docs: https://httpd.nginx.org/docs/2.4/
Wenn Nginx nicht läuft, erhalten Sie eine Ausgabemeldung in etwa wie folgt:
nginx.service - The nginx HTTP Server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2022-10-11 10:25:41 UTC; 25s ago
Docs: https://httpd.nginx.org/docs/2.4/
Falls Nginx jetzt nicht läuft, müssen Sie es mit dem folgenden Befehl erneut starten:
systemctl start nginx
Überprüfen Sie den Status des Back-End-Servers
- Melden Sie sich bei dem Reverse-Proxy-Server an, der Nginx hostet.
- Öffnen Sie ein Terminalfenster und führen Sie den folgenden Befehl aus:
curl -I http://backend-server-ip-address/
• Ersetzen Sie „backend-server-ip-address“ durch die IP-Adresse Ihres Backend-Servers.
• Überprüfen Sie den HTTP-Statuscode in der Ausgabe des Befehls. Wenn der Back-End-Server ordnungsgemäß ausgeführt wird, sollte der Statuscode 200 OK angezeigt werden.
• Wenn Sie einen anderen Statuscode als 200 erhalten, weist dies darauf hin, dass möglicherweise ein Problem mit dem Back-End-Server vorliegt. Sie können das Problem weiter untersuchen, indem Sie die Protokolle des Back-End-Servers untersuchen, um Fehler oder Warnmeldungen zu identifizieren.
Überprüfen Sie die DNS-Konfiguration
Wenn die DNS-Auflösung fehlschlägt, kann der Reverse-Proxy-Server die Anfrage nicht an den Back-End-Server weiterleiten, was dazu führt, dass ein 502 Bad Gateway-Fehler an den Client zurückgegeben wird. Daher ist es wichtig zu überprüfen, ob die DNS-Konfiguration für den Back-End-Server korrekt ist.
Um die DNS-Konfiguration zu überprüfen, können Sie die folgenden Schritte ausführen:
- Melden Sie sich bei dem Reverse-Proxy-Server an, der Nginx hostet.
- Öffnen Sie ein Terminalfenster und führen Sie den folgenden Befehl aus:
nslookup backend-server-domain-name
Ersetzen Sie „backend-server-domain-name“ durch den Domainnamen Ihres Backend-Servers.
• Überprüfen Sie die Ausgabe des Befehls, um sicherzustellen, dass die richtige IP-Adresse für den Back-End-Server zurückgegeben wird.
- Wenn die Ausgabe des Befehls anzeigt, dass die DNS-Auflösung fehlgeschlagen ist, liegt möglicherweise ein Problem mit der DNS-Konfiguration vor. Sie können das Problem weiter untersuchen, indem Sie die DNS-Einstellungen für den Domänennamen des Back-End-Servers überprüfen oder Ihren DNS-Anbieter um Unterstützung bitten.
Überprüfen Sie die Firewall-Konfiguration
Es wird empfohlen, die Firewall-Protokolle auf eine ungewöhnliche Blockierung zu überprüfen. Manchmal verhindern oder blockieren Firewalls auch Websites. Um dieses Problem zu beheben, müssen Sie Ihre Firewalls vorübergehend deaktivieren und prüfen, ob das Problem weiterhin besteht oder behoben wurde.
Erhöhen Sie die Puffergröße
Durch Erhöhen der Puffergröße kann Nginx mehr Daten aus der Antwort des Servers speichern und so sicherstellen, dass die Antwort vollständig und fehlerfrei ist. Um die Puffergröße zu erhöhen, müssen Sie die Nginx-Konfigurationsdatei bearbeiten und die folgenden Anweisungen hinzufügen.
-
proxy_buffer_size
: Legt die Größe jedes Puffers fest. Der Standardwert ist normalerweise 4K. Sie können ihn abhängig von den Anforderungen Ihres Servers auf einen höheren Wert erhöhen. Um beispielsweise die Puffergröße auf 16 KB festzulegen, fügen Sie Ihrer Konfigurationsdatei die folgende Zeile hinzu:
proxy_buffer_size 16k;
-
proxy_buffers
: Legt die Anzahl der zuzuweisenden Puffer fest. Der Standardwert ist normalerweise 8. Sie können ihn abhängig von den Anforderungen Ihres Servers auf einen höheren Wert erhöhen. Um beispielsweise die Anzahl der Puffer auf 32 und die Puffergröße auf 16 KB festzulegen, fügen Sie Ihrer Konfigurationsdatei die folgende Zeile hinzu:
proxy_buffers 32 16k;
Hinweis: Es ist wichtig zu beachten, dass eine Erhöhung der Puffergröße und der Anzahl der Puffer die Speichernutzung auf dem Server erhöht. Sie sollten also mit verschiedenen Puffergrößen und Puffernummern experimentieren, um die optimale Einstellung für Ihren Server und Ihre Anwendung zu finden.
- Nachdem Sie Änderungen an der Nginx-Konfigurationsdatei vorgenommen haben, speichern Sie die Datei und starten Sie Nginx neu, damit die Änderungen wirksam werden. Sie können dies tun, indem Sie den folgenden Befehl ausführen:
sudo service nginx restart
Starten Sie den Nginx-Server neu
In einigen Fällen kann ein einfacher Neustart des Nginx-Servers den Nginx-Fehler 502 Bad Gateway beheben. Um dies zu tun,
Sie müssen einen Befehl in Ihrem Terminal oder Ihrer Shell ausführen. Der genaue Befehl hängt vom Betriebssystem und der Distribution ab, die Sie verwenden, aber hier sind einige Beispiele:
- Ubuntu und Debian:
sudo service nginx restart
- CentOS, Fedora und RHEL:
sudo systemctl restart nginx
- macOS :
sudo nginx -s reload
Diese Befehle starten den Nginx-Server ordnungsgemäß neu, was bedeutet, dass er wartet, bis alle aktiven Verbindungen beendet sind, bevor er heruntergefahren und neu gestartet wird.
Überprüfen Sie den PHP-FPM-Status
Manchmal kann der 502 Bad Gateway Nginx-Fehler auch dadurch ausgelöst werden, dass PHP-FPM nicht läuft. Daher ist es notwendig, den Status von PHP-FPM zu überprüfen, um sicherzustellen, dass es ordnungsgemäß ausgeführt wird.
Um den Ausführungsstatus zu überprüfen, können Sie den folgenden Befehl verwenden:
sudo service php-fpm status
Wenn PHP-FPM ausgeführt wird, sollten Sie eine Meldung sehen, die besagt, dass es aktiv ist.
Falls PHP-FPM jedoch nicht ausgeführt wird, können Sie versuchen, es mit dem folgenden Befehl neu zu starten:
sudo service php-fpm restart
Dieser Befehl startet den PHP-FPM-Dienst neu, was helfen kann, jedes Problem zu lösen, das möglicherweise einen 502 Bad Gateway Nginx-Fehler auslöst.
Zusammenfassung
Ein 502 Bad Gateway Nginx-Fehler ist ein häufiger Fehler, auf den Nginx-Benutzer stoßen können. Es wird normalerweise durch Verbindungsprobleme, Serverüberlastung, DNS-Probleme, Firewall-Einschränkungen oder Softwarefehler verursacht.
Wenn Sie jedoch die in diesem Artikel beschriebenen Schritte befolgen, können Sie einen 502-Bad-Gateway-Nginx-Fehler beheben und beheben.
Wenn keine der oben genannten Methoden für Sie funktioniert hat, sollten Sie in Betracht ziehen, Hilfe von Nginx-Foren oder einem sehr erfahrenen und qualifizierten Nginx-Berater zu suchen.
Wenn Sie Tipps oder Vorschläge zum 502 Bad Gateway Nginx-Fehler haben, die wir in diesem Beitrag möglicherweise übersehen haben, oder wenn Sie Ihre Erfahrungen damit teilen möchten, teilen Sie uns dies bitte im Kommentarbereich unten mit. Wir freuen uns über Ihren Beitrag.
Lesen Sie: Wie behebt man HTTP 500 Internal Server Error in WordPress?
Häufig gestellte Fragen
Wie behebe ich 502 Bad Gateway Nginx?
Sie können den nginx-Fehler 502 Bad Gateway beheben, indem Sie die folgenden Methoden befolgen:
1. Überprüfen Sie den Status von Nginx
2. Überprüfen Sie den Status des Back-End-Servers
3. Überprüfen Sie die DNS-Konfiguration
4. Überprüfen Sie die Firewall-Konfiguration
5. Erhöhen Sie die Puffergröße
6. Starten Sie den Nginx-Server neu
7. Überprüfen Sie die PHP-FPM-Statistik
Wie überprüfe ich meinen Nginx-Status?
Um den nginx-Status zu überprüfen, führen Sie den folgenden Befehl aus:
systemctl-status nginx
Die Ausgabe zeigt an, ob nginx läuft oder nicht.
Was ist ein 502 Bad Gateway-Fehler?
Ein 502 Bad Gateway Nginx-Fehler ist ein HTTP-Statuscode, der einen Server darstellt, der als Gateway oder Proxy-Server fungiert und keine gültige Antwort von einem Upstream-Server erhält.