GNU/Linux >> LINUX-Kenntnisse >  >> Linux

nginx 504-Gateway-Timeout

Ein 504-Gateway-Timeout-Fehler tritt auf, wenn Nginx nicht lange genug eine Antwort vom Dienst erhalten kann. Zum Beispiel von PHP-FPM.

Nginx und PHP-FPM

Die häufigste Ursache für diesen Fehler ist die Zusammenarbeit von Nginx und PHP-FPM. Falls es sehr langsame PHP-Skripte gibt, gibt Nginx ein 504-Gateway-Timeout aus, wenn es 30 Sekunden lang nicht auf eine Antwort wartet (standardmäßig).

Um diesen Fehler zu beseitigen, versuchen Sie, das Zeitlimit zu erhöhen:

location ~ \.php$ {
  fastcgi_pass unix:/tmp/php5-fpm.sock;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
  fastcgi_read_timeout 300;
}

Proxy

504-Gateway-Timeout kann auch auftreten, wenn Nginx als Proxyserver verwendet wird. Zum Beispiel bei der Arbeit mit Apache. Um Probleme zu vermeiden, müssen Sie die Timeout-Einstellungen für den Proxy konfigurieren:

server {
...
    proxy_connect_timeout       600;
    proxy_send_timeout          600;
    proxy_read_timeout          600;
    send_timeout                600;
...
}

Vergessen Sie nicht, Nginx neu zu starten, nachdem Sie die Einstellungen geändert haben:

# nginx -s reload

Es ist wichtig zu verstehen, dass es sehr ratsam ist, langsame Skripte loszuwerden. Eine Lösung mit Timeout-Einstellungen funktioniert möglicherweise nicht mehr, wenn die Last zunimmt.


Linux
  1. 502 Bad Gateway Error NGINX [Lösung]

  2. Warum stimmt das Awk-Muster nicht mit den Konfigurationsargumenten von Nginx -v überein?

  3. Grundlegende Nginx-Fehlerbehebung

  4. nginx 504-Gateway-Timeout

  5. Fehlerbehebung bei Gateway-Fehlern und Zeitüberschreitungen:502, 504

PlaySMS Kannel SMS Gateway-Integration auf NGINX+Debian

So beheben Sie das 504-Gateway-Timeout auf Nginx

So beheben Sie den Fehler 502 Bad Gateway auf Nginx

Fehler bei der Installation von Nginx unter Ubuntu 16.04?

Installieren Sie Nginx auf Ubuntu 18.04

Wie kann man nginx zwingen, DNS (eines dynamischen Hostnamens) jedes Mal aufzulösen, wenn proxy_pass ausgeführt wird?