Nginx Linux

Nginx: 504 Gateway Timeout

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

504 Gateway Timeout означает, что Nginx не дождался ответа от вышестоящего приложения в установленное время. Сопоставьте timestamp 504 в access.log и error.log с журналом PHP-FPM и нагрузкой базы.

В этой статье
  1. Что означает сообщение
  2. Как отличить причины
  3. Пошаговое решение
  4. Что важно перед исправлением

#Что означает сообщение

Сообщение
504

504 Gateway Timeout означает, что Nginx не дождался ответа от вышестоящего приложения в установленное время. Это не всегда «сломанный Nginx» — PHP-FPM, база данных или сетевой сервис могут быть заняты.

#Как отличить причины

Возможная причинаКак узнатьЧто делать
Долгий скриптСравните момент появления признака «Долгий скрипт» с тем, когда ранее работала нужная функция. Важно сопоставить проверку с исходным симптомом, а не с догадкой.Исправляйте только подтверждённый фактор «Долгий скрипт», сохраняя прежние настройки. Для проверки результата повторите только прежнее действие.
ТаймаутСравните результат на другом подключении и проверьте, получается ли адрес и ответ нужного сервиса. Учитывайте версию Nginx и условия сбоя.Для случая «Nginx: 504 Gateway Timeout» корректируйте только подтверждённую сетевую настройку; при корпоративных подключениях согласуйте изменение VPN, DNS или правил межсетевого экрана. Изменения вносите по одному, с возможностью возврата.
БазаПри диагностике «Nginx: 504 Gateway Timeout» уточните, какой файл, каталог или запись вызывает отказ, и сравните время её изменения с началом ошибки. Учитывайте версию Nginx и условия сбоя.Для случая «Nginx: 504 Gateway Timeout» исправляйте целевой файл или запись и оставляйте исходник на случай отката. Для проверки результата повторите только прежнее действие.
ПерегрузкаСравните момент появления признака «Перегрузка» с тем, когда ранее работала нужная функция. Учитывайте версию Nginx и условия сбоя.Исправляйте только подтверждённый фактор «Перегрузка», сохраняя прежние настройки. Изменения вносите по одному, с возможностью возврата.

#Пошаговое решение

  1. Зафиксируйте ошибку и проверьте условияОткройте страницу с ошибкой 504 и запишите адрес, точное время и действие, после которого она возникает. Сравните её с быстрыми страницами того же сайта: если таймаут только при импорте или поиске, вероятна медленная задача приложения; если на всём сайте, проверьте доступность серверной части.
  2. Выполните основную проверку и исправлениеПо SSH администратор выполняет sudo tail -n 100 /var/log/nginx/error.log и ищет для этого времени сообщение upstream timed out с адресом upstream. Затем проверьте журнал того приложения или PHP-FPM, к которому обращается Nginx. 504 не означает автоматом неисправность самого Nginx.
  3. Исключите другие подтверждённые причиныПроверьте состояние соответствующей службы и её нагрузку: для PHP-FPM — реальное имя пула, доступную память, очередь запросов и признаки pm.max_children; для другого приложения — его собственные журналы. Отдельно выясните, не ждёт ли код медленный SQL, DNS, сетевой API или внешнюю систему.
  4. Проверьте, действительно ли проблема решенаИсправляйте причину медленной операции либо переносите её в фоновую задачу. Изменять fastcgi_read_timeout/proxy_read_timeout можно лишь после оценки нужной длительности, проверки конфигурации nginx -t и плана отката; бесконечно увеличивать таймаут нельзя. Повторите прежний запрос и проверьте время ответа и журналы.

#Что важно перед исправлением

Не увеличивайте таймауты бесконечно: зависшие обработчики начнут занимать ресурсы ещё дольше. Не перезапускайте все службы боевого сервера без необходимости.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.