Heim > Artikel > Backend-Entwicklung > So lösen Sie das Nginx PHP 499-Fehlerproblem
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.
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!