Nach 6-stündigem Debuggen gebe ich dies auf: |
Wir haben ein nginx + php-fpm + mysql im LAN mit fast 100 WordPress (erstellt und verwendet von verschiedenen Designern / Entwicklern, die alle an der Einrichtung von Test-Wordpres arbeiten)
Wir verwenden Nginx ohne Probleme seit langem.
Heute hat Nginx plötzlich aus heiterem Himmel "504 Gateway Time-out" zurückgegeben ...
Ich habe das Nginx-Fehlerprotokoll auf einen virtuellen Host überprüft ...
2010/09/06 21:24:24 [error] 12909#0: *349 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:11 [error] 12909#0: *349 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:11 [error] 12909#0: *443 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 21:25:12 [error] 12909#0: *443 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:08:32 [error] 12909#0: *1025 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:33 [error] 12909#0: *1025 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:40 [error] 12909#0: *1064 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:09:40 [error] 12909#0: *1064 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:24:44 [error] 12909#0: *1313 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
2010/09/06 22:24:53 [error] 12909#0: *1313 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info"
Als ich php-fpm über den TCP-Modus auf Port 9000 ausführte , führte ich "netstat | grep 9000" aus und bemerkte etwas Ungewöhnliches ... (Einfügen einer Teilausgabe hier zur Erleichterung des Lesens)
tcp 9 0 localhost:9000 localhost:36094 CLOSE_WAIT 14269/php5-fpm
tcp 0 0 localhost:46664 localhost:9000 FIN_WAIT2 -
tcp 1257 0 localhost:9000 localhost:36135 CLOSE_WAIT -
tcp 1257 0 localhost:9000 localhost:36125 CLOSE_WAIT -
tcp 9 0 localhost:9000 localhost:36102 CLOSE_WAIT 14268/php5-fpm
tcp 0 0 localhost:46662 localhost:9000 FIN_WAIT2 -
tcp 745 0 localhost:9000 localhost:46644 CLOSE_WAIT -
tcp 0 0 localhost:46658 localhost:9000 FIN_WAIT2 -
tcp 1265 0 localhost:9000 localhost:46607 CLOSE_WAIT -
tcp 0 0 localhost:46672 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1257 0 localhost:9000 localhost:36119 CLOSE_WAIT -
tcp 1265 0 localhost:9000 localhost:46613 CLOSE_WAIT -
tcp 0 0 localhost:46646 localhost:9000 FIN_WAIT2 -
tcp 1257 0 localhost:9000 localhost:36137 CLOSE_WAIT -
tcp 0 0 localhost:46670 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1265 0 localhost:9000 localhost:46619 CLOSE_WAIT -
tcp 1336 0 localhost:9000 localhost:46668 ESTABLISHED -
tcp 0 0 localhost:46648 localhost:9000 FIN_WAIT2 -
tcp 1336 0 localhost:9000 localhost:46670 ESTABLISHED -
tcp 9 0 localhost:9000 localhost:36108 CLOSE_WAIT 14274/php5-fpm
tcp 1336 0 localhost:9000 localhost:46684 ESTABLISHED -
tcp 0 0 localhost:46674 localhost:9000 ESTABLISHED 12909/nginx: worker
tcp 1336 0 localhost:9000 localhost:46666 ESTABLISHED -
tcp 1257 0 localhost:9000 localhost:46648 CLOSE_WAIT -
tcp 1336 0 localhost:9000 localhost:46678 ESTABLISHED -
tcp 0 0 localhost:46668 localhost:9000 ESTABLISHED 12909/nginx: wo
Es gibt viele "CLOSE_WAIT" & "FIN_WAIT2" -Paare, wie unten hervorgehoben (in der obigen Ausgabe):
tcp 1337 0 localhost:9000 localhost:46680 CLOSE_WAIT -
tcp 0 0 localhost:46680 localhost:9000 FIN_WAIT2 -
Bitte beachten Sie den obigen Port 46680.
Ich habe das Fehlerprotokoll für langsame Abfragen in MySQL aktiviert, aber es hat nicht funktioniert.
Ab sofort starte ich php5-fpm jede Minute über einen Cronjob neu (siehe Befehl unten), damit alles "reibungslos" läuft, aber ich hasse Patchwork und möchte das lösen ...
1 * * * * service php5-fpm restart > /dev/null
Ich habe ausgiebig bei Google gesucht - keine Hilfe bekommen. Wie bereits erwähnt, handelt es sich um einen Testserver im LAN. Die CPU-Auslastung wird nie überschritten. 0,10 und der Arbeitsspeicherbedarf liegen ebenfalls unter 25%. (Auf dem System sind 2 GB RAM und ein Ubuntu-Server installiert.) atleast einen Hinweis fallen.
Vielen Dank im Voraus für Hilfe.
-Rahul
(Hinweis - dies ist ein Reposting von - http://forum.nginx.org/read.php?11,127694 )
Update: Ich habe eine Antwort gefunden, die unten steht.
[global]
Sektion einzufügen, wird eine Fehlermeldung angezeigt . Es funktioniert dort nur, wenn Sie auch Ihre Pool-Konfigurationen dort haben. Außerdem: request_terminate_timeout docs .request_terminate_timeout=30s
in meinephp-fpm.conf
Datei ein Fehler (111 Connection Refused) aufgetreten ist. Als ich es in meinewww.conf
Datei verschoben habe, hat es funktioniert.Hier, wie es mein Problem gelöst hat:
Nehmen Sie die folgenden Änderungen an /etc/nginx/nginx.conf in http {section vor
und starten Sie dann nginx neu
/etc/init.d/nginx neu starten
quelle
Wenn Sie PHP 5.3 verwenden, erhöhen Sie den Rückstand.
Wenn Sie PHP 5.2 verwenden, portieren Sie den Patch zurück, um das Backlog von 128 zu vergrößern.
Verwenden Sie auch einen Unix-Socket anstelle eines TCP-Sockets. Unix: /tmp/php5-cgi.sock (oder der entsprechende Pfad)
quelle
Vielen Dank
request_terminate_timeout = 30s
Es funktioniert perfekt für mich
aber ich musste die Zeile in diese Datei einfügen: "/etc/php5/fpm/pool.d/www.conf", das heißt in der "Worker Section".
PHP 5.3.21-1 - Wordpress 3.5.1
http://php-fpm.org/wiki/Configuration_File
quelle
In meinem Fall (dieselbe Nginx-Fehlermeldung) hören einige problematische PHP-Skripte nicht auf, ausgeführt zu werden und warten auf etwas, was dazu führt, dass keine Php5-Fpm-Kinder mehr für Nginx ausgewählt werden müssen.
Fix:
request_terminate_timeout=30s
pm.max_spare_servers=16
pm.min_spare_servers=2
Jetzt funktionierte alles wie ein Zauber.
quelle
Ich hatte das gleiche Problem und löste es, indem ich Apache vollständig entfernte:
Danach empfehle ich, PHP und NGINX neu zu starten:
quelle
Bei mir ist das gleiche Problem aufgetreten, nachdem rabbitmq vom Server entfernt wurde. Nichts von dem oben Genannten war nicht nützlich. Das erneute Installieren aller PHP5-Module löste das Problem. Ich hatte Debian 8.2 auf diesem Server. Hoffnung wird für jemanden hilfreich sein.
quelle
Dies kann auch Menschen helfen:
Abhängig von Ihrem Setup sollten Sie die FastCGI-Konfigurationsparameter sowie PHP ... in meinem Fall (ich verwende Apache2 + PHP5-FPM) und die max_execution-Zeit ist auch davon abhängig, wie lange das FastCGI-Modul auf eine Antwort wartet ( -idle-timeout) ...
http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer
quelle