2009-10-03 14 views
7

Wir betreiben Drupal 5.x auf Nginx mit php-fastcgi. Die Dinge funktionierten für eine Weile gut. Plötzlich laufen wir (Benutzer) in 502 Bad Gateway Fehler. Neustart von PHP-CGI, nginx .. Neustart Maschine usw. hat nicht geholfen.Drupal + Nginx + Php-cgi: 502 Falscher Gatewayfehler

Ist noch jemand auf diese Art von Problem gestoßen? Was sind die möglichen Verdächtigen?

+0

Anzahl der php-fastcgi erweitern pm.max_children Größe – num8er

Antwort

0

In der Regel, wenn ich auf dieses Problem gestoßen bin, war es irgendwo in PHP ein fataler Fehler. Sehen Sie sich Ihr PHP-CGI-Protokoll an, um zu sehen, ob es dort ist. Es sollte etwas im nginx Protokoll wie folgt sein: 104: Connection reset by peer. Abhängig von Ihrer Einrichtung kann diese (Entschuldigung, link dead) helfen, aber wenn Sie php-fpm verwenden wird es nicht.

3

502 Fehler werden normalerweise verursacht, wenn PHP aus irgendeinem Grund ausfällt. Das erste, was Sie tun sollten, ist alle Ihre Logfiles zu überprüfen. Dazu gehören Systemstümpfe in/var/log/und die nginx-Protokolle.

Wenn Sie keine kürzlich vorgenommenen Änderungen vorgenommen haben und das Problem gerade ohne ersichtlichen Grund aufgetreten ist, ist möglicherweise nicht mehr genügend Speicherplatz in PHP vorhanden. Ich weiß, wenn es als Apache-Modul passiert, gibt es einen leeren Bildschirm - wäre nicht überrascht, wenn ein 502-Fehler unter Nginx und der FastCGI-Schnittstelle passiert. Das ist einfach zu beheben, indem man ini_set ('memory_limit', '256M') in deine index.php setzt und sehen, ob das das Problem behebt.

Können Sie auch Stand-alone-PHP-Dateien laden, die Drupal nicht beinhalten? Put setzen <? Php phpinfo(); ? > in eine Datei namens info.php und versuchen Sie es zu schlagen und zu sehen, was passiert.

Viel Glück!

0

Wenn das Problem gerade erst begonnen .. oben Lesen Sie weiter .. wenn der Server neu nur Setup ist, versuchen Sie diesen Befehl, um zu sehen, ob es auch zuhört darauf

netstat -lpn | grep ":9000" 

Port ist Wenn Natürlich können Sie Setup-schnell- haben cgi, um an einem anderen Port zu arbeiten, also ersetze einfach den Port 9000 in dieser Anweisung mit dem Port, den du suchst. Wenn nichts weiter angezeigt wird, hört wahrscheinlich nichts auf diesem Port zu und du musst das Problem zuerst beheben .

0

Wenn Sie FirePHP deaktivieren, deaktivieren Sie es. Große Header verursacht Probleme, während Nginx Kommunikation mit PHP

10

Heute bekam ich "502 Bad Gateway" auf einem CI-Projekt, nach dem Graben in das Problem fand ich heraus, es ist ein Problem von nginx fastcgi Puffer, hier ist, wie zu beheben es: offen /etc/nginx/nginx.conf

fügen sie die folgenden Zeilen in http Abschnitt:

fastcgi_buffers 8 16k; 
fastcgi_buffer_size 32k; 
+0

Wir haben auch Folgendes hinzugefügt, zusätzlich zum Neustart beider Dienste: nginx und php5-fpm. \t fastcgi_connect_timeout 300; \t fastcgi_send_timeout 300; \t fastcgi_read_timeout 300; – zmonteca

2

ich auch diesen Fehler, und ich deaktivieren schließlich alle Module (Non-Core) und ermöglichen sie eins nach dem anderen, um zu sehen, was den Fehler verursacht hat.

Hier ist ein einfacher Weg zu disable all non-core modules.

0

erhöhen Sie Ihr Speicherlimit und es wird behoben. ini_set ('memory_limit', '256M');

0

Es ist, weil Sie wahrscheinlich auf PHP 5 aktualisiert haben.5 und verwenden Sie daher den Opcode-Cache, den Sie möglicherweise zweimal aktiviert haben. Das ist php.ini und auch opcache.ini.

Verwandte Themen