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

Похожие записи

Async CSS

  • По умолчанию при обработке CSS визуализация страницы блокируется.
  • С помощью медиазапросов обработку некоторых CSS-файлов можно отложить.
  • Браузер скачивает все CSS-файлы (как с медиазапросами, так и без них).

Medium like image zooming

Полгода собирался в блог добавить zoom на изображения как на medium и вот "новый год" позволил мне это сделать.