Chyba časového limitu brány 504 nastane, když Nginx nemůže dostat odpověď od služby dostatečně dlouho. Například z PHP-FPM.
Nginx a PHP-FPM
Nejčastější příčinou této chyby je spolupráce Nginx a PHP-FPM. V případě, že existují velmi pomalé PHP skripty, Nginx poskytne bráně 504 časový limit, když nečeká na odpověď po dobu 30 sekund (ve výchozím nastavení).
Chcete-li se této chyby zbavit, zkuste zvýšit časový limit:
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
Časový limit brány 504 může také nastat, když je Nginx používán jako proxy server. Například při práci s Apache. Abyste předešli problémům, musíte nakonfigurovat nastavení časového limitu pro proxy:
server {
...
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
...
} Po změně nastavení nezapomeňte restartovat Nginx:
# nginx -s reload
Je důležité pochopit, že je velmi vhodné zbavit se pomalých skriptů. Řešení s nastavením časového limitu může přestat fungovat, když se zatížení zvýší.