Skip to content
HTTP и сайты
NEXIP / EDITORIAL STORY

Ошибка 504 Gateway Timeout: почему возникает

504 Gateway Timeout означает: сервер-посредник отправил запрос дальше, но не дождался ответа вовремя. Поэтому 504 часто появляется не тогда, когда «сервер совсем умер», а когда какая-то внутренняя операция работает слишком долго. Простая…

NexIP editorialNexIP Published Reading time3 min Start reading
NEXIP JOURNAL Cover image
← Journal Ошибка 504 Gateway Timeout: почему возникает

504 Gateway Timeout означает: сервер-посредник отправил запрос дальше, но не дождался ответа вовремя.

Поэтому 504 часто появляется не тогда, когда «сервер совсем умер», а когда какая-то внутренняя операция работает слишком долго.

Простая схема

Браузер
↓
nginx / CDN / proxy
↓
backend
↓
долгая операция
↓
TIMEOUT

Чем 504 отличается от 502

Упрощённо:

  • 502 — upstream дал неправильный ответ или соединение с ним не получилось нормально;
  • 504 — ожидание upstream заняло слишком много времени.

Пример

Пользователь запускает тяжёлый отчёт.

PHP начинает большой SQL-запрос. База отвечает 90 секунд, а nginx готов ждать только 60.

В итоге пользователь получает 504.

Медленная база данных

Одна из самых частых причин.

Проблемы могут быть в:

  • отсутствующем индексе;
  • тяжёлом JOIN;
  • блокировке;
  • перегруженном сервере;
  • слишком большом объёме данных.

Внешний API тормозит

Приложение может само работать быстро, но ждать сторонний сервис.

NexIP backend
↓
внешний API
↓
долгое ожидание

DNS внутри backend

Иногда приложение обращается к другому hostname и само долго ждёт DNS или сетевое соединение.

Перегрузка

CPU занят, память закончилась, очередь запросов растёт — приложение перестаёт отвечать вовремя.

Слишком маленький timeout

Иногда система объективно выполняет нормальную операцию 70 секунд, а proxy настроен ждать только 60.

Но просто увеличить timeout — не всегда правильное решение.

Почему нельзя бесконечно увеличивать timeout

Если запрос занимает пять минут из-за плохого SQL, значение 600 секунд лишь скрывает проблему и позволяет тяжёлым запросам дольше занимать ресурсы.

Сначала найдите медленный участок

Полезно измерить:

  • время самого приложения;
  • SQL;
  • внешние API;
  • DNS;
  • соединения;
  • очереди.

Посмотрите журнал nginx

tail -n 100 /var/log/nginx/error.log

Фраза вроде:

upstream timed out

очень хорошо указывает направление поиска.

Проверка backend напрямую

Если архитектура позволяет, запросите внутренний сервис без внешнего proxy и сравните время.

curl и время ответа

curl -s -o /dev/null \
-w "connect=%{time_connect} total=%{time_total}\n" \
https://example.com/

504 от CDN

CDN тоже может слишком долго ждать origin.

Тогда проблема часто не в самом CDN, а в origin-сервере или сети между ними.

Что делать посетителю

Если это чужой сайт, можно повторить запрос позднее. Но систематическая 504 требует исправления на стороне сервиса.

Что делать владельцу

  1. Посмотреть error log.
  2. Определить upstream.
  3. Измерить его время ответа.
  4. Проверить нагрузку.
  5. Проверить базу.
  6. Проверить внешние зависимости.
  7. Только после этого пересматривать timeout.

Как NexIP помогает

Проверка снаружи подтверждает, действительно ли публичный endpoint возвращает 504 и сколько времени проходит до ошибки.

FAQ

504 — это интернет у пользователя?

Обычно нет. Код сформировал gateway/proxy на серверной стороне.

Можно исправить перезагрузкой браузера?

Если проблема была кратковременной — следующий запрос может пройти. Но постоянную причину это не исправляет.

Нужно увеличить proxy_read_timeout?

Иногда да, но только если длительное выполнение ожидаемо. Сначала выясните, почему backend отвечает так долго.

По теме: Ошибка 502 Bad Gateway: что означает и как найти причину.

Thank you for reading

More practical guides are waiting in the NexIP journal.

NEXIP / DIAGNOSTICS

Verify what matters

Check a website, domain or network settings with real NexIP diagnostics.

Launch diagnostics

Continue reading

Related materials

HTTP и сайты

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

Нейросети перестают быть обычными советчиками и начинают покупать товары от имени людей. Shopify уже открыла доступ ИИ-агентам к миллиардам товаров, а Visa исследует платежи между программами. Но кто ответит, если алгоритм потратит деньги неправильно? Разбираемся, как меняется интернет-торговля и почему привычные магазины могут столкнуться с совершенно новым типом покупателей.

Read
HTTP и сайты

HTTP-коды ответа: что означают 200, 301, 404, 500 и другие

Когда браузер открывает страницу, сервер отвечает не только HTML-кодом. Вместе с ответом он отправляет числовой HTTP-статус: 200, 301, 404, 500 и так далее. Эти три цифры часто позволяют понять проблему быстрее, чем длинное сообщение…

Read
Back to knowledge base