Nginx + php-fpm: 504-Zeitüberschreitungsfehler - Upstream-Zeitüberschreitung (110: Zeitüberschreitung der Verbindung)

9

Ist das erste Mal, dass wir Nginx und PHP-FPM einrichten. Vor einer Woche nutzten wir Apache, um eine Webseite zu bedienen, aber wir haben uns entschieden, die Nginx-Kombination auszuprobieren, und wir sehen uns mehreren Problemen gegenüber.

Wir haben eine virtuelle Maschine, auf der Ubuntu 14.04 LTS Trusty läuft. Unter anderen Dienstprogrammen läuft auf dem Rechner Nginx mit PHP-FPM und MySQL, und hier kommt das Problem:

  • Aus demselben Netzwerk können alle Mitarbeiter (etwa 10) problemlos auf das Web zugreifen, während ein Mitarbeiter nicht in der Lage ist (Fehler 504).
  • Von außen können einige Mitarbeiter problemlos auf das Web zugreifen, andere sehen den Fehler 504. Zum Beispiel kann ich in meinem Fall über mein Heim-WiFi zugreifen, aber wenn ich das Handy 3G benutze, kann ich nicht. Einige Mitarbeiter haben das Gegenteil gesehen, sie können über 3G aber nicht WiFi zugreifen. Und andere können nicht zugreifen.

Wir sind zu dem Schluss gekommen, dass der Client eine Verbindung mit dem Nginx herstellen kann, aber Nginx, wenn er die Anfrage an FPM umleitet (auf den über Port 7777 zugegriffen werden kann), erhält keine Antwort und zeigt einen Zeitüberschreitungsfehler an. Wir haben uns auf die Fehlersuche bei der Kommunikation zwischen Nginx und FPM konzentriert, aber nach mehreren Stunden haben wir keine Lösung gefunden.

Hinweis : Dieses Problem wird auf den vier virtuellen Maschinen, die wir eingerichtet haben, wiederholt.

Nginx-Fehlerprotokoll (Hinweis: Hostname und IP wurden unterdrückt)

%Vor%

Datei: /etc/nginx/nginx.conf

%Vor%

Datei: /etc/nginx/sites-available/default.conf

%Vor%

Datei: / etc / nginx / fastcgi_params
Hinweis : Nur die Zeile fastcgi_param REQUEST_SCHEME $scheme; wurde hinzugefügt.

%Vor%

Datei: /etc/php5/fpm/php-fpm.conf

%Vor%

Datei: /etc/php5/fpm/pool.d/www.conf

%Vor%

Was wir bisher getan haben (diese Konfigurationen sind möglicherweise nicht in den obigen Dateien enthalten)

  • Setzen Sie den Nginx- und FPM-Benutzer gleich (www-data).
  • Starten Sie Dienste und Computer neu.
  • Setzen Sie proxy_read_timeout in der nginx-Konfiguration.
  • Setzen Sie max_execution_time und request_terminate_timeout auf 300 (auf php.ini bzw. nginx.conf).
  • Erhöhen Sie die Anzahl von worker_process und worker_connections in der nginx-Konfiguration.
  • Ändere den Wert von Listen von /var/run/php5-fpm.sock auf 127.0.0.1:7777 sowohl in nginx config als auch in php-fpm.

Wir werden weiter an einer Lösung arbeiten, und wenn sie gefunden wird, wird sie hier veröffentlicht. Danke!

    
Marc 27.09.2014, 01:05
quelle

2 Antworten

1

Gelöst!

Es scheint, dass das Problem im PHP-Code lag. Bei der Verwendung von xdebug wurde das remote_host -Attribut nicht gesetzt, und wir wissen immer noch nicht, warum die xdebug-Prozeduren abhängig vom entfernten Host zufällig ausgeführt wurden.

Hinweis : Wenn wir nur Apache verwendet haben, ist dieses Problem nie aufgetreten. Es begann mit der Verwendung von Nginx + php-fpm, aber vergiss es, schließlich wurde das Problem gelöst.

Danke.

    
Marc 27.09.2014 18:30
quelle
1

probiere das

aus %Vor%     
0xcodex 22.04.2015 01:49
quelle

Tags und Links