Ursachen und Lösungen für den Nginx 502 Bad Gateway-Fehler

Ursachen und Lösungen für den Nginx 502 Bad Gateway-Fehler

Der Nginx 502 Bad Gateway-Fehler ist mir schon mehrmals begegnet. Ich werde ihn hier zur Erinnerung notieren.


Es gibt viele Situationen, in denen 502-Fehler auftreten können. Lassen Sie uns über jede Situation einzeln sprechen.

1. Der FastCGI-Puffer ist zu klein eingestellt

Wenn ein Fehler auftritt, suchen Sie zuerst nach der nginx-Protokolldatei im Verzeichnis /var/log/nginx. Der folgende Fehler wird im Protokoll gefunden.

17.01.2013 13:33:47 [Fehler] 15421#0: *16 Upstream hat beim Lesen des Antwortheaders vom Upstream einen zu großen Header gesendet

Nachdem ich die Informationen überprüft hatte, stellte ich fest, dass ein Fehler im Nginx-Puffer vorliegt und die Seiten auf unserer Website möglicherweise zu viel Puffer verbrauchen.

Ich habe online nach einer Lösung gesucht und auf einer fremden Website eine Methode zum Erhöhen des Puffers gefunden, die das Nginx 502 Bad Gateway-Problem vollständig gelöst hat. So geht's:

http {
  ...
  fastcgi_buffers 8 16k;
  fastcgi_buffer_size 32k;
  ...
}

Bitte erhöhen Sie die beiden oben genannten Konfigurationselemente entsprechend der Situation des Servers und der Website.

2. Der Proxy-Puffer ist zu klein eingestellt

Wenn Sie den Reverse-Proxy von Nginx verwenden und der Header zu groß ist und den Standardwert von 1 KB überschreitet, wird der oben erwähnte „Upstream Send Too Big Header“ ausgelöst (um es einfach auszudrücken: Nginx sendet die externe Anforderung zur Verarbeitung an das Backend, und der vom Backend zurückgegebene Header ist zu groß, sodass Nginx ihn nicht verarbeiten kann, was zu 502 führt).

Server {
    hören Sie 80;
    Servername *.lxy.me;
    Standort / {
##################Fügen Sie diese 3 Zeilen hinzu: proxy_buffer_size 64k;
       Proxy-Puffer 32 32k;
       Proxy_Busy_Buffer_Größe 128k;
#################Fügen Sie diese 3 Zeilen hinzu: proxy_set_header Host $host;
      Proxy_Set_Header X-Real-IP $Remote_Addr;
      proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
............
}

3. Die Standardanzahl der PHP-CGI-Prozesse ist zu gering

Wenn während der Installation und Verwendung ein 502-Fehler auftritt, liegt dies normalerweise daran, dass die Standardanzahl der php-cgi-Prozesse 5 beträgt. 502 kann durch unzureichende phpcgi-Prozesse verursacht werden. Sie müssen /usr/local/php/etc/php-fpm.conf ändern und den max_children-Wert entsprechend erhöhen. Es ist auch möglich, dass der max_requests-Wert nicht ausreicht. Es ist zu beachten, dass diese beiden Konfigurationselemente viel Speicher beanspruchen. Bitte stellen Sie sie entsprechend der Serverkonfiguration ein. Andernfalls könnte es den gegenteiligen Effekt haben.

4. PHP-Ausführungstimeout

PHP-Ausführungstimeout, ändern Sie /usr/local/php/etc/php.ini und ändern Sie max_execution_time auf 300

5. Nginx-Wartezeit-Timeout

Die Ausführungszeit einiger PHP-Programme überschreitet die Wartezeit von Nginx. Sie können die Timeout-Zeit von FastCGI in der Konfigurationsdatei nginx.conf entsprechend erhöhen.

http {
 fastcgi_connect_timeout 300;
 fastcgi_send_timeout 300;
 fastcgi_read_timeout 300;
 .....
 }

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Fehlerbehebung bei der Ursache des 502 Bad Gateway-Fehlers auf dem Nginx-Server
  • 4 häufige Ursachen und Lösungen für den Nginx 502 Bad Gateway-Fehler
  • Deep Dive: So beheben Sie den Nginx 502 Bad Gateway-Fehler
  • Ursachen und Lösungen für die Front-End-Ausnahme 502 Bad Gateway

<<:  JavaScript-Einzelthread und asynchrone Details

>>:  Die Verwendung von Ankerpunkten in HTML_PowerNode Java Academy

Artikel    

Artikel empfehlen

So legen Sie den Rahmen einer Webseitentabelle fest

<br />Zuvor haben wir gelernt, wie man Zelll...

Beispielcode für HTML-Formularkomponente

HTML-Formulare werden verwendet, um verschiedene ...

Docker erstellt Python Flask+ Nginx+Uwsgi-Container

Installieren Sie Nginx Ziehen Sie zuerst das Cent...

Hinweise zum passenden MySql 8.0 und entsprechenden Treiberpaketen

MySql 8.0 entsprechendes Treiberpaket passend Nac...

Wie MySQL Milliarden von Datenverkehr unterstützt

Inhaltsverzeichnis 1 Master-Slave-Lese-/Schreibtr...

Der Unterschied zwischen HTML-Name-ID und Klasse_PowerNode Java Academy

Name Geben Sie einen Namen für das Tag an. Format...

Vier Möglichkeiten zum Wechseln von Registerkarten in VUE

Inhaltsverzeichnis 1. Statische Implementierungsm...

Methoden zur Verbesserung der Zugriffskontrollsicherheit im Linux-Kernel

Hintergrund Vor einiger Zeit half unser Projektte...

border-radius ist eine Methode zum Hinzufügen abgerundeter Ränder zu Elementen

border-radius:10px; /* Alle Ecken sind mit einem ...