504 gateway time-out nginx
<html>
<head>
<title>504 Gateway Time-out</title>
</head>
<body bgcolor="white">
<center><h1>504 Gateway Time-out</h1></center>
<hr>
<center>nginx</center>
</body>
</html>
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
<!-- a padding to disable MSIE and Chrome friendly error page -->
Когда Nginx не получает ответ за выделенное время происходит ошибка 504 gateway time-out
(Время вышло). Есть 2 основных случая, когда это происходит.
Nginx обслуживает другой web сервер
Наиболее распростанена связка с Apache. Чтобы увеличить время ожидания при проксировании, необходимо изменить следующие параметры:
server {
...
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;
...
}
Время ожидания будет равно 300 секундам.
Nginx обслуживает PHP-FPM
В это случае причиной является медленные PHP скрипты. Возможно это банальные ошибки или причина просто в "тяжёлой" операции или обращении к другому сайту, например за обновлениями. В любом случае, Nginx будет отдавать 504 ошибку когда он не дожидается ответа в течение установленного времени. Чтобы увеличить время ожидания следует изменить такие параметры:
location ~ \.php$ {
...
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
После изменение настроек, проверямся и перезагружаем nginx.
sudo nginx -t
sudo systemctl reload nginx