Beheben Sie den Nginx-Fehler „504 Gateway Time-out“

Beheben Sie den Nginx-Fehler „504 Gateway Time-out“

Studenten, die Websites erstellen, stellen häufig fest, dass einige Nginx-Server beim Zugriff 504 Gateway Timeout-Fehler melden. Im Allgemeinen wird dies durch die langsame Reaktion des standardmäßigen Fastcgi-Prozesses von Nginx verursacht, es gibt jedoch auch andere Situationen. Hier fasse ich einige Lösungen zu Ihrer Information zusammen.

So beheben Sie den Fehler „504 Gateway Time-out“

Methoden/Schritte

Fall 1: Der Standard-FastCGI-Prozessantwortpuffer von Nginx ist zu klein

Diese Situation führt dazu, dass der FastCGI-Prozess angehalten wird. Wenn das FastCGI-Serviceteam diese Anhaltung nicht gut handhabt, kann dies zu einem Fehler „504 Gateway Time-out“ führen.

Lösung für Situation 1:

Der Standard-Antwortpuffer des FastCGI-Prozesses ist 8 KB groß. Wir können ihn vergrößern, indem wir in nginx.conf Folgendes hinzufügen: fastcgi_buffers 8 128k

Dies bedeutet, dass der FastCGI-Puffer auf 8 Blöcke mit einer Größe von 128 KB eingestellt wird.

Lösung zu Situation 1 (Verbesserung):

Wenn das Problem nach der Änderung der obigen Methode weiterhin auftritt, können wir den Nginx-Timeout-Parameter weiter ändern und den Parameter ein wenig erhöhen, z. B. indem wir ihn auf 60 Sekunden einstellen:

send_timeout 60;

Nach dem Anpassen dieser beiden Parameter wurde der Fehler „504 Gateway Time-out“ nicht mehr angezeigt, was zeigt, dass der Effekt recht gut ist und das Problem grundsätzlich gelöst ist.

Fall 2: Konfigurationsproblem der PHP-Umgebung

Hier müssen wir die Konfiguration von php-fpm und nginx ändern. Denn auch in diesem Fall erscheint die Fehlermeldung „504 Gateway Time-out“.

Lösung für Situation 2 (Änderung der PHP-FPM-Konfiguration):

Ändern Sie max_children von 10 30 um sicherzustellen, dass genügend PHP-CGI-Prozesse verfügbar sind.

Ändern Sie request_terminate_timeout von 0秒auf 60秒. Dadurch wird die Zeitüberschreitungsperiode für den php-cgi-Prozess zur Verarbeitung des Skripts auf 60 Sekunden erhöht. Dies kann verhindern, dass der Prozess hängen bleibt, und die Nutzungseffizienz verbessern.

Lösung für Situation 2 (Änderung der Nginx-Konfiguration):

Um die Anzahl der FastCGI-Anfragen zu reduzieren und die Puffer unverändert zu lassen, müssen wir mehrere Nginx-Konfigurationselemente wie folgt ändern:

Ändern Sie fastcgi_buffers von 4 64k auf 2 256k ;

Ändern Sie fastcgi_buffer_size von 64k 128k ;

Ändern Sie fastcgi_busy_buffers_size von 128k 256k ;

Ändern Sie fastcgi_temp_file_write_size von 128k 256k .

Nachdem die Lösung für Situation 2 geändert wurde, müssen wir die Konfiguration von php-fpm und nginx neu laden und dann testen. Danach wurden keine „504 Gateway Time-out“-Fehler mehr gefunden und die Wirkung ist immer noch gut!

Das Obige ist die Einführung des Herausgebers zur Lösung des Nginx-Fehlers „504 Gateway Time-out“. Ich hoffe, es wird für alle hilfreich sein. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • So beheben Sie den Nginx 504 Gateway Time-out-Fehler
  • Ein Nginx 504 Gateway Time-out Fehler-Troubleshooting und Lösungs-Protokoll
  • Lösungen für die Fehler Nginx 502 Bad Gateway und Nginx 504 Gateway Timeout

<<:  Prinzip des MySQL-Indexfehlers

>>:  7 interessante Möglichkeiten, versteckte Elemente in CSS zu erreichen

Artikel empfehlen

Hinweise zur Verwendung des Blockquote-Tags

<br />Semantisierung lässt sich nicht mit we...

Lösung für den Fall, dass der Tomcat-Server tomcat7w.exe nicht öffnen kann

Beim Konfigurieren des Tomcat-Servers ist mir heu...

Verwendung von Docker UI, einem Docker-Visualisierungsverwaltungstool

1. Einführung in DockerUI DockerUI basiert auf de...

So implementieren Sie das Beobachtermuster in JavaScript

Inhaltsverzeichnis Überblick Anwendungsszenarien ...

Details zur Verwendung von „order by“ in MySQL

Inhaltsverzeichnis 1. Einleitung 2. Haupttext 2.1...

Tiefgreifendes Verständnis von globalen Sperren und Tabellensperren in MySQL

Vorwort Je nach Umfang der Sperrung können Sperre...

Detaillierte Einführung in TABLE-Tags (TAGS)

Grundlegende Syntax der Tabelle <table>...&l...

Bedeutung und Verwendung einer Linux-CD

Was bedeutet Linux-CD? Unter Linux bedeutet cd „V...

Detaillierte Schritte zur Implementierung der Excel-Importfunktion in Vue

1. Front-End-geführte Implementierungsschritte De...

Mysql implementiert drei Funktionen zum Feldspleißen

Beim Exportieren von Daten in Operationen ist das...