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.