Ошибка 504 Gateway Timeout: сервер не ответил вовремя
504 означает, что фронтовый сервер ждал ответа от приложения дольше отведённого времени и сдался. Сайт не «упал» — он думает слишком долго, и цепочка рвётся по таймауту.
Кто кого не дождался
У nginx есть proxy_read_timeout, у PHP — max_execution_time, у базы — свои лимиты. Если запрос обрабатывается дольше самого строгого из них, посетитель получает 504. Чаще всего это тяжёлый отчёт, выгрузка, обращение к внешнему API или запрос без индекса в базе.
Где искать долгий запрос
- →Медленные запросы в логе базы: включите slow query log и посмотрите, что выполняется дольше секунды.
- →Внешние интеграции: платёжный шлюз, служба доставки, CRM — их таймаут становится вашим.
- →Импорт и выгрузки: обмен с 1С и генерация отчётов почти всегда упираются в лимит.
- →Холодный старт после деплоя, когда кэш пустой и первые запросы собирают всё заново.
Что делать
- →Вынесите долгую работу в фоновую задачу и отдавайте ответ сразу, а результат — по готовности.
- →Добавьте индексы под тяжёлые выборки и кэшируйте то, что не меняется каждую минуту.
- →Ограничьте время ожидания внешних API и обрабатывайте их отказ, а не ждите до последнего.
- →Поднимать таймауты стоит в последнюю очередь: это прячет симптом, а не лечит причину.
Как видеть медленные ответы заранее
Logsy фиксирует время ответа на каждой проверке и отмечает запросы, которые перевалили за ваш порог. Медленные запросы посетителей тоже попадают в лог сессии — с адресом, длительностью и страницей, на которой это случилось. 504 обычно приходит не внезапно: сначала растёт время ответа, и это видно.
Частые вопросы
›504 — это проблема хостинга?
Не обязательно. Хостинг лишь применяет таймаут; долго работает ваш код, база или внешний сервис. Смена тарифа помогает только когда упирались в ресурсы.
›Почему 504 появляется только на некоторых страницах?
Потому что долгая только конкретная операция: отчёт, поиск, оформление заказа. Остальные страницы отвечают быстро и живут без ошибок.
›Можно ли просто увеличить таймаут?
Как временная мера — да, но посетитель всё равно не станет ждать полминуты. Правильнее ускорить операцию или увести её в фон.
Следите за временем ответа, а не только за доступностью
Проверки раз в минуту с фиксацией времени ответа и лог медленных запросов из браузеров посетителей.
Подключить бесплатноБесплатный тариф навсегда