Шлюз и прокси
Сверяем журналы Nginx, балансировщика или CDN, upstream-адрес, время соединения, ответа и общий лимит ожидания.
Gateway Timeout
Находим участок, на котором шлюз перестаёт ждать ответ: приложение, база данных, внешний API, очередь или сеть. Восстанавливаем работу и проверяем причину, а не просто увеличиваем лимит ожидания.
Цепочка ответа
RFC 9110 определяет 504 как ситуацию, когда сервер в роли шлюза или прокси не получил своевременный ответ от upstream-сервера. Код указывает на границу сбоя, но не на медленную функцию: её находим по времени каждого этапа.
Сверяем журналы Nginx, балансировщика или CDN, upstream-адрес, время соединения, ответа и общий лимит ожидания.
Ищем долгий обработчик, занятые воркеры, блокировку, зависшую фоновую задачу или исчерпанный пул соединений.
Проверяем медленные запросы, блокировки, индексы, число подключений и отличие проблемной операции от обычной.
Измеряем DNS, соединение и ответ API, платёжного модуля, CRM, поиска или другого обязательного компонента.
Сопоставляем 504 с CPU, памятью, диском, очередями, числом запросов и временем ожидания свободного воркера.
После исправления повторяем проблемное действие и проверяем время на каждом слое, журналы и отсутствие нового тайм-аута.
Результат
Понятно, какой компонент не укладывался в допустимое время.
Оптимизирован запрос, процесс, очередь или вызов зависимости.
Время ответа и доля ошибок контролируются до массового сбоя.
Порядок действий
Сначала сохраняем доказательства и локализуем слой. Изменение тайм-аутов рассматриваем только после измерений, чтобы не увеличить очередь и расход ресурсов.
Записываем URL, действие, точное время, длительность и повторяемость.
Связываем запись шлюза с запросом приложения, базы и внешней зависимости.
Оптимизируем подтверждённую операцию или безопасно меняем архитектуру её выполнения.
Повторяем сценарий и настраиваем наблюдение за временем ответа.
Ограничение
Если запрос зависает из-за блокировки, медленной базы или недоступного API, увеличение ожидания удержит соединения дольше. Сначала измеряем цепочку и только затем выбираем безопасный лимит.
Не обещаем устранение без доступа к данным: одинаковый код может быть вызван разными участками инфраструктуры.
Вопросы
Шлюз или прокси не дождался своевременного ответа от следующего сервера в цепочке. Конкретную причину устанавливаем по журналам и времени операций.
При 504 ответ не пришёл вовремя. При 502 шлюз получил от upstream некорректный ответ.
Иногда — для ожидаемо долгой операции. Без измерений это может скрыть проблему и увеличить число занятых соединений.
URL, точное время, повторяемый сценарий, журналы шлюза и приложения, метрики базы и зависимостей.
Первый шаг
Пришлите URL, время и действие перед сбоем. Определим, какие журналы и метрики нужны для первого проверяемого шага.