Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie das Nginx PHP 499-Fehlerproblem

So lösen Sie das Nginx PHP 499-Fehlerproblem

藏色散人
藏色散人Original
2021-04-02 09:03:484369Durchsuche

nginx php 499-Fehler liegt daran, dass die serverseitige Verarbeitungszeit zu lang ist und der Client nicht verbunden ist und wartet. Die Lösung besteht darin, „php-fpm.conf“ unter Linux zu finden und unten „pm=dynamic“ hinzuzufügen. usw. Konfigurieren Sie es einfach.

So lösen Sie das Nginx PHP 499-Fehlerproblem

Die Betriebsumgebung dieses Artikels: Nginx1.0.4-System, PHP-Version 7.1, DELL G3-Computer

PHP und NGINX 499, 502 Problembehandlung

Es gibt viele Gründe für das Erscheinen von 502 in Nginx, aber Die meisten Gründe können darauf zurückgeführt werden, dass die Anzahl der Ressourcen nicht ausreicht.

Das heißt, es liegt ein Problem mit der Back-End-PHP-FPM-Verarbeitung vor. fpm-Prozess,

aber es kann aufgrund des Problems mit dem PHP-FPM-Prozess nicht korrekt sein. Analysieren Sie den PHP-Code und geben Sie schließlich einen 502-Fehler an den Client zurück.

Der Grund, warum der Server 502 anzeigt, ist, dass die Verbindung abgelaufen ist. Da der Server derzeit zu viele Links hat, kann der Server keine normale Antwort geben.

Also Wenn Ihr Server eine sehr große Parallelität aufweist, können Sie nur durch das Hinzufügen von Maschinen und die anschließende Optimierung wie folgt bessere Ergebnisse erzielen. Wenn Sie jedoch eine geringe Parallelität haben, aber 502 erhalten, kann dies im Allgemeinen auf Konfigurationsprobleme und Probleme mit der Skript-Zeitüberschreitung zurückgeführt werden.

Das letzte Problem ist der Programmcode selbst. Die Verarbeitungszeit ist zu lang und die Ressourcen können nicht zurückgegeben werden! Achten Sie also auf die Codeoptimierung!

499 entspricht „Client hat Verbindung geschlossen“. Dies liegt höchstwahrscheinlich daran, dass die serverseitige Verarbeitungszeit zu lang ist und der Client vom Wartezustand getrennt wird.

Wenn der Beitrag zweimal zu schnell übermittelt wird, wird 499 angezeigt, dass es sich um eine unsichere Verbindung handelt und die Verbindung des Clients aktiv abgelehnt wird!

Und es gibt eine Auszeit!

Die meisten Leute sagen, dass sie „proxy_ignore_client_abort“ ändern, was bedeutet, dass der Proxyserver die Clientverbindung nicht aktiv schließen sollte. Aber es ist keine Lösung des Problems!

Das Folgende ist, wie ich dieses Problem durch fpm gelöst habe.

Steuern Sie den untergeordneten Prozess. Die Optionen sind statisch und dynamisch. Wenn „Statisch“ ausgewählt ist, wird durch pm.max_children eine feste Anzahl an untergeordneten Prozessen angegeben. Für dedizierte Server kann der PM-Wert auf statisch gesetzt werden. Wenn Sie „Dynamisch“ auswählen, wird dies durch eine Reihe von Parametern gesteuert, dh durch den dynamischen Prozess.

Unter Linux finden wir php-fpm.conf und fügen unten die folgende Konfiguration hinzu

pm = dynamische dynamische Routing-Optionskonfiguration

pm.max_children = 16 maximale Anzahl untergeordneter Prozesse

pm.start_servers = 4 Anzahl von Prozesse beim Start

pm.min_spare_servers = 2 Mindestanzahl an Leerlaufprozessen unter diesem Wert, erstellen Sie einen neuen untergeordneten Prozess

pm.max_spare_servers = 16 Garantieren Sie die maximale Anzahl an Leerlaufprozessen Als dieser Wert wird dies bereinigt

Was die statische Konfiguration betrifft, werde ich nicht zu sehr auf die Standardkonfiguration eingehen. Wenn Sie mehr darüber wissen möchten, steuern Sie bitte die Anzahl der PHP-FPM-Prozesse auf Baidu

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Nginx PHP 499-Fehlerproblem. 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