Behebung des NGINX-Internen Serverfehlers 500 für Client und Server

Nginx (ausgesprochen Motor-XDer im Oktober 2004 veröffentlichte Open-Source-Webserver fungiert auch als Load Balancer, Reverse-Proxy und HTTP-Cache. Seine Popularität und Nützlichkeit zeigen sich in seiner Verwendung durch namhafte Technologieunternehmen wie Microsoft, Google, Facebook, Twitter und Apple.

Nginx

Bedeutung des Fehlers 500 Internal Server Error in Nginx

Wie andere Softwareanwendungen oder Server kann auch Nginx Fehler aufweisen, die sein integriertes Fehlerberichtssystem erkennen kann. Der Fehler 500 Internal Server Error stellt jedoch einen Sonderfall dar. Dieser Fehler tritt auch bei verschiedenen anderen Webservern wie Apache und IIS auf.

Nginx Interner Serverfehler 500

Der HTTP-Statuscode 500 weist auf ein Serverproblem hin, dessen Ursache nicht eindeutig identifiziert werden kann. Im Gegensatz zu anderen HTTP-Statuscodes wie 403 (Verboten) oder 404 (Nicht gefunden) liefert er keinerlei Hinweise auf die mögliche Ursache.

Wie lässt sich der Fehler 500 in Nginx clientseitig beheben?

Dieser Fehlercode weist auf ein serverseitiges Problem hin, das sich in der Regel serverseitig beheben lässt. In seltenen Fällen kann jedoch Ihr Browser das Problem verursachen, indem er eine Anfrage sendet, die der Server nicht verarbeiten kann.

Um zu überprüfen, ob der Browser das Problem verursacht, öffnen Sie die Website in einem anderen Browser, auf einem anderen Gerät und in einem anderen Netzwerk. Funktioniert sie dort einwandfrei, löschen Sie den Cache und die Daten des ursprünglichen Browsers und stellen Sie sicher, dass keine Browsererweiterungen das Problem verursachen.

Falls die Nginx-Website weiterhin den Fehler 500 anzeigt, wenden Sie sich an Ihren Serveradministrator, um das Problem zu beheben.

Wie lässt sich der Nginx-Fehler 500 serverseitig beheben?

Dieser Fehler kann auf einen einfachen Syntaxfehler oder ein Problem mit der Backend-Anwendung zurückzuführen sein. Da die Fehlermeldung die eigentliche Ursache nicht offenlegt, kann die Fehlersuche schwierig sein. Aber keine Sorge, mit dem systematischen Vorgehen, das wir im Folgenden beschreiben, lässt sich das Problem lösen.

1. Serverüberlastung prüfen.

Bei Überlastung Ihres Servers kann ein interner 500-Fehler aufgrund unzureichender Ressourcen für wichtige Aufgaben auftreten. Überprüfen Sie die CPU-Auslastung, die Speicherauslastung und den verfügbaren Festplattenspeicher mit den Befehlen `Free`, `Top` oder `HTop`. Der folgende Screenshot zeigt die Ausgabe nach Ausführung des Befehls `top`.

Serverressourcenprüfung

Wenn der Server überlastet ist, sollte das Hinzufügen weiterer Ressourcen den Nginx-500-Fehler beheben.

2. Überprüfung der Syntax der Komposition

Der häufigste Grund für einen 500-Fehler in Nginx sind fehlerhafte Servereinstellungen aufgrund eines Syntaxfehlers in der Konfiguration.

Um dieses Problem zu beheben, überprüfen Sie die Nginx-Konfigurationsdateien und achten Sie sorgfältig auf Syntaxfehler oder falsch platzierte Anweisungen.

Überprüfen Sie anschließend Ihre Nginx-Konfigurationsdateien auf Syntaxfehler oder falsch platzierte Direktiven. Verwenden Sie Befehle wie `nginx -t` oder `nginx -t -c /Pfad/zu/nginx.conf`, um die Syntax zu prüfen und Fehler zu identifizieren. Führen Sie die folgenden Befehle im Terminal aus, um Fehler zu erkennen:

cd /etc/nginx/sites-available nginx -t

Überprüfung der Syntax der Komposition

Sie können auch Folgendes verwenden:

nginx -t -c /Pfad/zu/nginx.conf

Falls Syntaxfehler festgestellt werden, beheben Sie diese und führen Sie die folgenden Schritte aus, um Nginx neu zu starten/neu zu laden:

sudo service nginx restart nginx -s reload

In einigen Fällen müssen Sie die Konfigurationsdatei wie unten gezeigt ändern:

try_files mit try_files $uri =404

أو

try_files $uri $uri/ /index.html; with try_files $uri/ $uri /index.php?$query_string;

3. Serverprotokolle prüfen

Wenn Nginx einen 500-Fehler ausgibt, erstellt es auch einen Eintrag im internen Fehlerprotokoll, der die Ursache des Fehlers aufzeigen kann. Serverprotokolle befinden sich üblicherweise hier:

/var/log/nginx/error.log

Unter einer Linux-Distribution gehen Sie wie folgt vor, um das Serverprotokoll zu öffnen:

cd /var/log/nginx cat error.log

Auf der folgenden Seite können Sie alle Indikatoren für die Ursache überprüfen. Ein Beispiel finden Sie im folgenden Bild:

Serverprotokolle prüfen

Dies deutet darauf hin, dass der Server aufgrund eines Problems mit dem SSL-Zertifikat keine SSL/TLS-Verbindung zum Client herstellen konnte. Nachdem Sie das Problem in den Protokollen identifiziert haben, können Sie online nach möglichen Ursachen und Lösungen suchen.

Falls Sie die Registry aufgrund einer Fehlermeldung („Zugriff verweigert“) nicht öffnen können, ändern Sie die Datei Nginx.conf, indem Sie „user www-data“ durch „user root“ ersetzen. Speichern Sie die Datei, starten Sie Nginx neu und versuchen Sie erneut, die Registry zu öffnen.

4. Deaktivieren Sie vorübergehend Cloudflare oder ähnliche Dienste.

Wenn Sie Cloudflare oder einen ähnlichen Dienst auf Ihrem Server verwenden und dieser nicht korrekt konfiguriert ist oder mit den letzten Aktualisierungen in Konflikt steht, kann eine vorübergehende Deaktivierung bei der Diagnose des Problems helfen.

  1. Gehe zu Cloudflare-Kontrollfeld Melden Sie sich mit Ihren Zugangsdaten an.
  2. Gehe zu Übersicht (Übersicht) und erweitern Erweitert (Erweiterte Einstellungen).
  3. tippen Sie auf Website pausieren (Pausieren Sie die Website) und bestätigen Sie. Falls Ihr Hosting-Anbieter Cloudflare-Integrationen anbietet, deaktivieren Sie diese bitte ebenfalls.
  4. Stellen Sie sicher, dass Sie die korrekten IP-Adressen für die Website verwenden und prüfen Sie, ob der Nginx-500-Interner-Server-Fehler behoben wurde. Vergessen Sie nicht, sowohl die HTTP- als auch die HTTPS-Version der Website zu prüfen. CloudFlare auf der Website deaktivieren

5. Serverzertifikate überprüfen

Wenn eines Ihrer Zertifikate abgelaufen oder in Ihren aktuellen Einstellungen ungültig geworden ist, wird dies definitiv einen Fehler auf dem internen Server verursachen.

  1. Konfigurieren Sie Nginx für die Verwendung IP Adresse Für Ihre Website, nicht für den Domainnamen. Verwenden Sie die IP-Adresse des Servers in den Nginx-Einstellungen.
  2. Deaktivieren SSL-Verifizierung Fügen Sie in proxy_pass das selbstsignierte Zertifikat hinzu. Sie können ein solches in Ihrem Cloudflare-Dashboard erstellen (SSL > Clientzertifikate).
  3. Prüfen Sie, ob der Server ordnungsgemäß funktioniert. Falls ja, kontaktieren Sie die Zertifizierungsstelle oder prüfen Sie Ihre Einstellungen auf fehlerhafte Zertifikatskonfigurationen.

6. Überprüfen Sie die Backend-Anwendungen auf Fehler.

Wenn Nginx Clientanfragen an einen anderen Dienst weiterleitet, der nicht korrekt ausgeführt werden kann, führt dies zu einem 500-Fehler. Beispielsweise tritt der genannte Fehler auf, wenn der Server Clientanfragen an eine Backend-Anwendung wie NodeJS weiterleitet und diese Anwendung nicht ordnungsgemäß funktioniert.

Denken Sie daran: Wenn die Serverprotokolle keine Fehler anzeigen, deutet dies in der Regel auf ein Problem im Backend hin.

Um dieses Problem zu beheben, überprüfen Sie die Protokolle der Backend-Anwendung auf Fehler oder Ausnahmen. In WordPress finden Sie die NodeJS-Protokolle beispielsweise unter folgendem Pfad:

/var/www/ .com/logs/error.log

7. Unzureichende Dateiberechtigungen

Fehlen dem Nginx-Server die erforderlichen Berechtigungen zum Zugriff auf oder zur Ausführung einer Datei, führt dies zu einem 500-Fehler. Beispielsweise tritt auf einer WordPress-Website ein interner Serverfehler auf, wenn der Nginx-Server nicht auf PHP- oder HTML-Dateien im Ordner public_html zugreifen oder diese ausliefern kann.

Um dies zu beheben, können Sie die erforderlichen Nginx-Berechtigungen für die Dateien oder Verzeichnisse, auf die der Server zugreift, mit dem Befehl ändern. chmodÜblicherweise beträgt der Wert 755 für Verzeichnisse und 644 für Dateien.

8. Überprüfung der Kompatibilität von Add-ons

Plugins spielen eine entscheidende Rolle bei der Erweiterung der Serverleistung. Allerdings können fehlerhafte, veraltete oder übermäßig aktualisierte Plugins interne Serverfehler verursachen. Beispielsweise kann ein WordPress-Update die Funktionalität Ihrer Website beeinträchtigen, da viele Plugins inkompatibel werden, bis sie aktualisiert werden.

Um dieses Problem zu lösen, stellen Sie sicher, dass jede Addition Kompatibel Mit der Serversoftware und anderen Add-ons. Auch wenn das mühsam erscheint, lohnt sich der Aufwand. Alternativ können Sie versuchen, alle Add-ons zu deaktivieren, um zu sehen, ob das den Fehler behebt.

Wenn Sie Ihre Serversoftware kürzlich aktualisiert haben, versuchen Sie Folgendes: zurück Stellen Sie (wenn möglich) die vorherige Version wieder her, um zu prüfen, ob der Fehler behoben wurde. So lässt sich feststellen, ob das Update die Ursache war. Sie können das Software-Update verschieben, bis die Kompatibilität aller Add-ons bestätigt ist.

9. Auf fehlerhafte Skripte prüfen

Ähnlich wie Plugins sind Skripte für bestimmte Website-Funktionen unerlässlich. Ein beschädigtes, veraltetes oder inkompatibles Skript kann einen internen Serverfehler verursachen.

Sie können dieses Problem lösen, indem Sie Skripte deaktivieren Überprüfen Sie den Nginx-Server. Falls er ordnungsgemäß funktioniert, überprüfen Sie die Skripte und versuchen Sie, die problematischen Skripte zu identifizieren.

10. Erhöhen Sie den Server-Timeout-Wert.

Ist der Server-Timeout-Wert kürzer als die Nginx-Antwortzeit, tritt ein interner Serverfehler auf. Dasselbe gilt, wenn die Serveranfrage länger dauert als die Nginx-Antwortzeit, tritt das Problem ebenfalls auf.

Eine Erhöhung des Server-Timeout-Werts sollte das Problem beheben. Genaue Anweisungen dazu finden Sie online.

11. Stellen Sie sicher, dass alle Umleitungsprozesse funktionieren.

Stellen Sie sicher, dass alle Umleitungsprozesse korrekt funktionieren, wenn Nginx als Proxy-Server fungiert. Kann der Server die Client-Anfrage nicht an den Backend-Server weiterleiten, tritt ein 500-Fehler auf.

Alle Weiterleitungen vorübergehend deaktivieren Um die korrekte Funktion zu überprüfen, starten Sie im Erfolgsfall jeden Prozess einzeln neu, um die fehlerhafte Umleitung zu identifizieren. Suchen Sie anschließend online nach möglichen Ursachen und Lösungen für diesen spezifischen Umleitungsfehler.

12. PHP mit Nginx verwenden

Nginx unterstützt PHP nicht nativ; daher können fehlerhafte PHP-Konfigurationen mit Nginx zu einem internen Serverfehler führen.

Um dieses Problem zu beheben, überprüfen Sie die PHP-Integration mit Nginx. Wenn die PHP-Fehleranzeige deaktiviert ist, gibt der Server bei einem PHP-Problem einen Nginx-500-Fehler zurück. Die Aktivierung der PHP-Fehleranzeige kann die Fehlersuche vereinfachen.

Unter CentOS 7 gehen Sie wie folgt vor:

tail -f /var/log/php-fpm/www-error.log

Gehen Sie stattdessen zu

/etc/php.ini

Und ändern

display_errors = Aus

إلى

display_errors = Ein

Alternativ können Sie nach einem besseren PHP-Prozessor (wie z. B. PHP-FPM) suchen und das Nginx-Caching aktivieren.

13. Verwenden Sie den minimalistischen Ansatz.

Falls Sie den Fehler 500 immer noch nicht beheben können, können Sie den minimalistischen Ansatz zur Lösung des Problems verwenden.

  1. erstellt Sicherung Ersetzen Sie auf Ihrer Website den Inhalt der Website durch eine einfache index.html-Datei, die etwas einfachen Text enthält.
  2. Prüfen Sie, ob die Website Arbeiten Beginnen Sie damit, Anleitungen, Funktionen, Dienste, Plugins, Skripte usw. nacheinander hinzuzufügen.
  3. Testen Sie die Website nach jedem Schritt, um zu prüfen, ob das Problem erneut auftritt.
  4. Stellen Sie den Inhalt wieder auf Ihre Website und prüfen Sie, ob der Inhalt die Ursache des Problems ist.
  5. Sobald Sie das Element gefunden haben, das das Problem verursacht, können Sie es durch eine Internetrecherche beheben.

Wie man den Nginx-500-Serverfehler in Zukunft vermeiden kann

Um ein erneutes Auftreten des Nginx-500-Fehlers zu vermeiden, können Sie folgende Schritte unternehmen:

  • Führen Sie regelmäßige Serverwartungsarbeiten durch.
  • Stellen Sie sicher, dass der Code und die Inhalte (Bilder, Videos usw.) der Website für Ihre Einstellungen optimiert sind.
  • Erstellen Sie ein Content Delivery Network (CDN), um die Website über seinen Cache bereitzustellen.

Bei Fragen stehen wir Ihnen im Kommentarbereich zur Verfügung.

Kommentare sind geschlossen.