Wie behebt man „500 Internal Server Error NGINX“ für Client und Server?

Nginx (ausgesprochen Engine-Ex), ein im Oktober 2004 öffentlich veröffentlichter Open-Source-Webserver, dient auch als Load Balancer, Reverse Proxy und HTTP-Cache. Seine Beliebtheit und Nützlichkeit zeigen sich in der Übernahme durch namhafte Technologieunternehmen wie Microsoft, Google, Facebook, Twitter und Apple.

Nginx Nginx

Bedeutung von 500 Internal Server Error in Nginx

Wie andere Softwareanwendungen oder Server kann auch Nginx auf Fehler stoßen, die durch die integrierte Fehlerberichterstattung identifiziert werden können. Der interne Serverfehler 500 stellt jedoch eine einzigartige Situation dar. Dieser Fehler tritt auch auf verschiedenen Webservern wie Apache und IIS auf.

500 Interner Serverfehler Nginx500 Interner Serverfehler Nginx

Fehler 500 ist ein HTTP-Statuscode, der auf ein Serverproblem hinweist, dessen Grundursache unklar ist. Im Gegensatz zu anderen HTTP-Statuscodes wie 403 (Verboten) oder 404 (Nicht gefunden) gibt er keinen Hinweis auf die mögliche Ursache.

Wie behebe ich den 500-Fehler auf Nginx auf der Clientseite?

Dieser Fehlercode stellt ein serverseitiges Problem dar, das normalerweise auf dem Server gelöst werden kann. In seltenen Fällen kann Ihr Browser jedoch dazu beitragen, dass er eine Anfrage erstellt, die der Server nicht verarbeiten kann.

Um sicherzustellen, dass der Browser keine Probleme verursacht, öffnen Sie die Website in einem anderen Browser, auf einem anderen Gerät und in einem anderen Netzwerk. Wenn es ordnungsgemäß funktioniert, leeren Sie den Cache/die Daten des ursprünglichen Browsers und stellen Sie sicher, dass keine Browsererweiterungen das Problem verursachen.

Wenn auf der Nginx-Website weiterhin ein 500-Fehler angezeigt wird, wenden Sie sich an den Serveradministrator, um das Problem zu beheben.

Wie behebe ich den Nginx 500-Fehler auf der Serverseite?

Dieser Fehler kann auf einen einfachen Syntaxfehler oder ein Problem mit der Backend-Anwendung zurückzuführen sein. Da der Fehler die Ursache nicht offenlegt, kann die Fehlerbehebung schwierig sein. Aber keine Angst, der unten beschriebene systematische Ansatz kann das Problem lösen.

1. Überprüfen Sie die Serverüberlastung

Wenn Ihr Server überlastet ist, wird möglicherweise der interne Fehler 500 angezeigt, da die Ressourcen für wichtige Aufgaben nicht ausreichen. Überprüfen Sie die CPU-Auslastung, die Speichernutzung und die Verfügbarkeit von Speicherplatz mit den Befehlen „Free“, „Top“ oder „HTop“. Der Screenshot unten zeigt die Ausgabe nach der Ausführung des oberen Befehls.

Überprüfen Sie die ServerressourcenÜberprüfen Sie die Serverressourcen

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

2. Überprüfen Sie die Konfigurationssyntax

Die häufigste Ursache für den 500-Fehler auf Nginx sind falsche Servereinstellungen aufgrund eines Fehlers in der Konfigurationssyntax.

Um dies zu beheben, gehen Sie die Konfigurationsdateien von Nginx durch und überprüfen Sie die Syntax sorgfältig auf Fehler oder falsch platzierte Anweisungen.

Überprüfen Sie als Nächstes Ihre Nginx-Konfigurationsdateien auf Syntaxfehler oder falsch platzierte Anweisungen. Verwenden Sie Befehle wie nginx -t oder nginx -t -c /path/to/nginx.conf, um die Syntax zu validieren und etwaige Fehler zu identifizieren. Führen Sie die folgenden Befehle im Terminal aus, um etwaige Fehler zu erkennen:

cd /etc/nginx/sites-available nginx -tÜberprüfen Sie die KonfigurationssyntaxÜberprüfen Sie die Konfigurationssyntax

Sie können auch Folgendes verwenden:

nginx -t -c /path/to/nginx.conf

Wenn Syntaxfehler erkannt werden, beheben Sie diese und führen Sie Folgendes aus, um Nginx neu zu starten/neu zu laden:

sudo service nginx restart nginx -s reload

In einigen Fällen müssen Sie möglicherweise die Konfigurationsdatei wie folgt ändern:

try_files mit try_files $uri =404

oder

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

3. Überprüfen Sie die Serverprotokolle

Wenn Nginx einen 500-Fehler erzeugt, erstellt es auch einen Eintrag im internen Fehlerprotokoll, der auf die Grundursache des Fehlers hinweisen kann. Normalerweise befinden sich Serverprotokolle unter:

/var/log/nginx/error.log

Führen Sie auf einer Linux-Distribution Folgendes aus, um das Serverprotokoll zu öffnen:

cd /var/log/nginx cat error.log

Auf der daraufhin angezeigten Seite können Sie nach Hinweisen auf die Grundursache suchen. Schauen Sie sich zum Beispiel das Bild unten an:

Überprüfen Sie die ServerprotokolleÜberprüfen Sie die Serverprotokolle

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

Wenn Sie das Protokoll aufgrund eines Fehlers „Berechtigung verweigert“ für den Ordner nicht öffnen können, ändern Sie die Datei Nginx.conf, indem Sie „Benutzer www-data“ durch „Benutzer root“ ersetzen. Starten Sie Nginx nach dem Speichern der Datei neu und öffnen Sie das Protokoll erneut.

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

Wenn Sie Cloudflare oder einen ähnlichen Dienst auf Ihrem Server verwenden und dieser falsch konfiguriert ist oder mit den letzten Änderungen in Konflikt steht, kann eine vorübergehende Deaktivierung bei der Diagnose des Problems hilfreich sein.

  1. Navigieren Sie zu Cloudflare-Dashboard und melden Sie sich mit Ihren Zugangsdaten an.
  2. Gehen Sie zur Übersicht und erweitern Sie Erweitert.
  3. Klicken Sie auf Website anhalten und bestätigen Sie dies. Wenn Ihr Hosting-Anbieter über Cloudflare-Integrationen verfügt, stellen Sie sicher, dass diese ebenfalls deaktiviert sind.
  4. Stellen Sie sicher, dass Sie die richtigen IP-Adressen für die Website haben, und überprüfen Sie, ob der interne Nginx 500-Serverfehler behoben ist. Denken Sie daran, sowohl die HTTP- als auch die HTTPS-Version der Website zu überprüfen.Deaktivieren Sie CloudFlare auf der WebsiteDeaktivieren Sie CloudFlare auf der Website

5. Überprüfen Sie die Serverzertifikate

Wenn eines Ihrer Zertifikate in Ihrem aktuellen Setup abgelaufen oder ungültig geworden ist, führt dies mit Sicherheit zu einem internen Serverfehler.

  1. Konfigurieren Sie Nginx so, dass es die IP-Adresse Ihrer Website verwendet, nicht den Domänennamen.Verwenden Sie die IP-Adresse des Servers in den Nginx-EinstellungenVerwenden Sie die IP-Adresse des Servers in den Nginx-Einstellungen
  2. Deaktivieren Sie die SSL-Verifizierung in „proxy_pass“ und fügen Sie das selbstsignierte Zertifikat hinzu. Sie können eines im Cloudflare-Dashboard erstellen (SSL > Client-Zertifikate).
  3. Überprüfen Sie, ob der Server ordnungsgemäß funktioniert. Wenn ja, wenden Sie sich an die Zertifizierungsstelle oder überprüfen Sie Ihr Setup auf falsche Zertifikatkonfigurationen.

6. Überprüfen Sie, ob Backend-Anwendungsfehler vorliegen

Wenn Nginx Clientanfragen an einen anderen Dienst weiterleitet, der nicht ordnungsgemäß ausgeführt werden kann, führt dies zu einem 500-Fehler. Wenn der Server beispielsweise Clientanfragen an eine Backend-Anwendung wie NodeJS weiterleitet und die Anwendung nicht ordnungsgemäß funktioniert, führt dies zu dem besprochenen Fehler.

Denken Sie daran: Wenn das Serverprotokoll keine Fehler anzeigt, deutet dies normalerweise auf ein Backend-Problem hin.

Um dieses Problem zu beheben, überprüfen Sie die Back-End-Anwendungsprotokolle auf Fehler oder Ausnahmen. Unter WordPress finden Sie die Node JS-Protokolle beispielsweise unter:

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

7. Unzureichende Dateiberechtigungen

Wenn der Nginx-Server nicht über die erforderlichen Berechtigungen verfügt, um auf eine Datei zuzugreifen oder sie auszuführen, wird ein 500-Fehler verursacht. Beispielsweise tritt auf einer WordPress-Site ein interner Serverfehler auf, wenn der Nginx-Server nicht auf PHP- oder HTML-Dateien aus dem Ordner public_html zugreifen oder diese bereitstellen kann.

Um dies zu beheben, können Sie die erforderlichen Nginx-Berechtigungen für die vom Server aufgerufenen Dateien oder Verzeichnisse mit dem Befehl chmod ändern, normalerweise 755 für Verzeichnisse und 644 für Dateien.

8. Überprüfen Sie die Plugin-Kompatibilität

Plugins verbessern die Serverfähigkeiten entscheidend. Aber fehlerhafte, veraltete oder übermäßig aktualisierte Plugins können zu internen Serverfehlern führen. Beispielsweise kann die Aktualisierung von WordPress die Funktionalität Ihrer Website beeinträchtigen, da viele Plugins bis zur Aktualisierung inkompatibel werden.

Um dieses Problem zu beheben, stellen Sie sicher, dass jedes Plugin mit der Serversoftware und anderen Plugins kompatibel ist. Obwohl es mühsam erscheinen mag, lohnt es sich. Versuchen Sie alternativ, alle Plugins zu deaktivieren, um zu sehen, ob der Fehler dadurch behoben wird.

Wenn Sie Ihre Serversoftware kürzlich aktualisiert haben, versuchen Sie (falls möglich) zur vorherigen Version zurückzukehren, um zu sehen, ob der Fehler behoben wird. Dadurch wird bestätigt, ob das Update das Problem verursacht. Sie können das Software-Update verzögern, bis alle Plugins die Kompatibilität bestätigt haben.

9. Suchen Sie nach einem fehlerhaften Skript

Skripte sind wie Plugins für bestimmte Website-Funktionen von entscheidender Bedeutung. Ein ungültiges oder aktualisiertes Skript, das nicht mit der Serverumgebung kompatibel ist, kann einen internen Serverfehler verursachen.

Sie können dieses Problem lösen, indem Sie Skripte deaktivieren und den Nginx-Server überprüfen. Wenn es richtig funktioniert, gehen Sie die Skripte durch und versuchen Sie, die problematischen herauszufinden.

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

Wenn der Server-Timeout-Wert kürzer als die Antwortzeit von Nginx ist, tritt ein interner Serverfehler auf. Wenn die Anfrage des Servers länger als die Antwortzeit von Nginx dauert, tritt das Problem ebenfalls auf.

Das Problem sollte durch Erhöhen des Timeout-Werts Ihres Servers behoben werden. Konkrete Anleitungen finden Sie online.

11. Stellen Sie sicher, dass alle Umleitungen funktionieren

Stellen Sie sicher, dass alle Umleitungen ordnungsgemäß funktionieren, wenn Nginx als Proxyserver fungiert. Wenn der Server eine Client-Anfrage nicht an den Backend-Server umleiten kann, tritt ein 500-Fehler auf.

Deaktivieren Sie vorübergehend alle Umleitungen, um den ordnungsgemäßen Betrieb zu überprüfen. Bei Erfolg reaktivieren Sie jeden einzeln, um die fehlerhafte Weiterleitung zu identifizieren. Recherchieren Sie nach der Entdeckung online, um mögliche Ursachen und Lösungen für diesen speziellen Umleitungsfehler zu finden.

12. Verwendung von PHP mit Nginx

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

Um dieses Problem zu beheben, überprüfen Sie die PHP-Integration mit Nginx. Wenn PHP-Anzeigefehler deaktiviert sind, gibt der Server einen Nginx-Fehler 500 zurück, wenn PHP auf einen Fehler stößt. Die Aktivierung von PHP-Fehlern kann die Fehlerbehebung vereinfachen.

Führen Sie unter CentOS 7 Folgendes aus:

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

Alternativ gehen Sie zu

/etc/php.ini

Und Veränderung

display_errors = Aus

Zu

display_errors = Ein

Möglicherweise suchen Sie auch nach einem besseren PHP-Handler (z. B. PHP-FPM) und aktivieren den Nginx-Cache.

13. Verwenden Sie den Bare-Minimum-Ansatz

Wenn Sie den Fehler 500 immer noch nicht beheben können, können Sie das Problem mit dem absoluten Minimalansatz lösen.

  1. Erstellen Sie eine Sicherungskopie Ihrer Site und ersetzen Sie den Site-Inhalt durch eine einfache index.html mit etwas Klartext.
  2. Überprüfen Sie, ob die Website funktioniert, und fügen Sie nacheinander Anweisungen, Funktionen, Dienste, Plugins, Skripte usw. hinzu.
  3. Stellen Sie sicher, dass Sie die Website nach jedem Schritt testen und prüfen, ob das Problem erneut auftritt.
  4. Fügen Sie den Inhalt wieder zu Ihrer Website hinzu und prüfen Sie, ob der Inhalt das Problem verursacht.
  5. Sobald das problematische Element gefunden wurde, können Sie es durch eine Suche im Internet beheben.

So vermeiden Sie das zukünftige Wiederauftreten des Nginx 500-Serverfehlers

Sie können die folgenden Schritte ausführen, um ein erneutes Auftreten des Nginx 500-Fehlers zu vermeiden:

  • Führen Sie regelmäßige Serverwartungen durch.
  • Stellen Sie sicher, dass der Website-Code und der Inhalt (Bilder, Videos usw.) für Ihr Setup optimiert sind.
  • Richten Sie ein CDN ein, um die Website über ihren Cache bereitzustellen.

Wenn Sie eine Frage haben, stehen wir Ihnen im Kommentarbereich zur Verfügung.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *