Heim  >  Artikel  >  Backend-Entwicklung  >  Der Fehler 502 tritt auf, wenn PHP eine Verbindung zur Datenbank herstellt

Der Fehler 502 tritt auf, wenn PHP eine Verbindung zur Datenbank herstellt

尚
Original
2019-10-28 16:52:223238Durchsuche

Der Fehler 502 tritt auf, wenn PHP eine Verbindung zur Datenbank herstellt

502 Bad Gateway erscheint in Nginx+PHP Im Allgemeinen ist dies kein Problem mit Nginx, sondern wird durch ein Problem mit FastCGI oder PHP verursacht.

1. Das Memory_Limit von php.ini ist zu klein (Sie müssen darauf achten, wenn einzelne PHP-Programmprozesse viel Speicher belegen müssen)

2 oder max_requests-Einstellungen in php-fpm.conf Unangemessen (Wenn die Einstellung zu klein ist, gibt es nicht genügend CGI-Prozesse, um die Anfrage zu verarbeiten. Wenn sie zu hoch eingestellt ist, wird die Antwort für eine Weile normal sein, und dann wird sie normal sein Im Allgemeinen dauert es lange, bis Kinder reagieren. Beispielsweise ist 1G auf 64 und 2G128 eingestellt. Dies kann entsprechend der tatsächlichen Situation angepasst werden.

Darüber hinaus kann der Befehl überprüft werden Die aktuelle Anzahl der PHP-FastCGI-Prozesse ist ausreichend: netstat -anpo |. Wenn die tatsächliche Anzahl der PHP-FastCGI-Prozesse verwendet wird, liegt sie nahe an der Standardanzahl FastCGI-Prozesse“, dann bedeutet dies, dass die „Anzahl der FastCGI-Prozesse“ nicht ausreicht und erhöht werden muss)

3. Überprüfen Sie das Nginx-Fehlerprotokoll und stellen Sie fest, dass pstream beim Lesen des Antwortheaders einen zu großen Header gesendet hat Überprüfen Sie vom Upstream aus, ob der Client-Kopfpuffer und die Fastcgi-Puffergröße zu klein sind. Sie können auf 32 KB eingestellt werden.

4. Die Ausführungszeit des PHP-Programms ist zu lang und es kommt zu einer Zeitüberschreitung. Überprüfen Sie die verschiedenen Timeout-Einstellungen in Nginx und FastCGI.

(fastcgi_connect_timeout 300 in nginx; fastcgi_send_timeout 300: fastcgi_read_timeout300; keepalive_timeout; request_terminate_timeout in php-fpm, max_execution_time in php.ini)

5. php-fpm hat einen Parameter max_requests. Dieser Parameter gibt an die maximale Anzahl von Anfragen, die jedes Kind bearbeiten kann, bevor es geschlossen wird. Wenn dieser Wert bei der Verarbeitung einer großen Anzahl von Anfragen zu klein eingestellt ist, führt dies dazu, dass Kinder häufig Selbstmord begehen, was viel Zeit verschwendet. Wenn zu diesem Zeitpunkt fast alle Kinder Selbstmord begehen, gibt es keine Kinder Beantworten Sie die Anfrage vor dem Wiederaufbau, sodass 502 angezeigt wird. Dieser Wert kann größer oder 0 [unendlich] eingestellt werden.

Empfohlen: PHP-Server

Das obige ist der detaillierte Inhalt vonDer Fehler 502 tritt auf, wenn PHP eine Verbindung zur Datenbank herstellt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn