Добавить в корзинуПозвонить
Найти в Дзене

Ошибка 504 Gateway Timeout: что значит и как исправить

Ошибка 504 Gateway Timeout означает, что сервер-шлюз (например, nginx), к которому обратился ваш браузер, не дождался ответа от другого сервера — бэкенда — за отведённое время и вернул тайм-аут. Проще говоря: сайт не «сломан» и не «выключен», а слишком долго думает, и шлюз перестаёт ждать. Ниже — что значит ошибка 504, чем она отличается от 502, почему возникает и что делать и посетителю, и владельцу сайта. 504 — это не «сайта нет», а «сайт не успел ответить вовремя». Разница важная: чинить нужно не доступность, а скорость и стабильность бэкенда. Чтобы понять 504, нужно увидеть, где она возникает в цепочке запроса: Браузер стучится не напрямую к приложению, а к шлюзу (обратному прокси, чаще всего nginx). Шлюз передаёт запрос бэкенду — серверу, где крутится сам сайт. Если бэкенд не ответил за отведённое время, шлюз возвращает 504. Отличие от 502: при 502 Bad Gateway бэкенд ответил, но некорректно (или вовсе упал), а при 504 он просто не ответил вовремя. 502 — «дал битый ответ», 504 — «н
Оглавление

Ошибка 504 Gateway Timeout означает, что сервер-шлюз (например, nginx), к которому обратился ваш браузер, не дождался ответа от другого сервера — бэкенда — за отведённое время и вернул тайм-аут. Проще говоря: сайт не «сломан» и не «выключен», а слишком долго думает, и шлюз перестаёт ждать. Ниже — что значит ошибка 504, чем она отличается от 502, почему возникает и что делать и посетителю, и владельцу сайта.

504 — это не «сайта нет», а «сайт не успел ответить вовремя». Разница важная: чинить нужно не доступность, а скорость и стабильность бэкенда.
504 Gateway Timeout — шлюз не получил своевременный ответ от сервера приложения.
504 Gateway Timeout — шлюз не получил своевременный ответ от сервера приложения.

Что значит ошибка 504 и чем отличается от 502

Чтобы понять 504, нужно увидеть, где она возникает в цепочке запроса:

Браузер обращается к шлюзу, тот — к бэкенду; если ответа нет вовремя, шлюз отдаёт 504.
Браузер обращается к шлюзу, тот — к бэкенду; если ответа нет вовремя, шлюз отдаёт 504.

Браузер стучится не напрямую к приложению, а к шлюзу (обратному прокси, чаще всего nginx). Шлюз передаёт запрос бэкенду — серверу, где крутится сам сайт. Если бэкенд не ответил за отведённое время, шлюз возвращает 504. Отличие от 502: при 502 Bad Gateway бэкенд ответил, но некорректно (или вовсе упал), а при 504 он просто не ответил вовремя. 502 — «дал битый ответ», 504 — «не успел ответить».

Почему возникает 504

Почти всегда причина в том, что бэкенд не уложился в тайм-аут. Типичные варианты:

Четыре частые причины 504 — от перегрузки до слишком короткого тайм-аута шлюза.
Четыре частые причины 504 — от перегрузки до слишком короткого тайм-аута шлюза.
  • Перегрузка сервера. Всплеск трафика или тяжёлые процессы — бэкенд не успевает обрабатывать запросы в срок.
  • Долгий скрипт или запрос к базе. Неоптимальный код, тяжёлый отчёт, зависший запрос к БД — ответ готовится дольше тайм-аута.
  • Упал бэкенд. Сервис приложения или PHP-обработчик перестал отвечать, а шлюз ещё жив — он и отдаёт 504.
  • Слишком короткий тайм-аут шлюза. Иногда бэкенд просто медленный по своей природе, а лимит ожидания на шлюзе выставлен слишком мал.

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

  • Обновите страницу через минуту. Часто 504 временная: сервер разгрузился — и всё заработало.
  • Проверьте, только ли у вас. Если сайт недоступен у всех — проблема на стороне сайта; если только у вас — попробуйте другую сеть.
  • Не спешите винить свой компьютер. 504 почти всегда на стороне сервера — от вас тут мало что зависит.
Для посетителя правило простое: 504 — это «сервер сайта тормозит». Подождать и обновить — максимум, что можно сделать со своей стороны.

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

  • Посмотрите логи. В логах шлюза и бэкенда видно, какой запрос упирается в тайм-аут, — это указывает на узкое место.
  • Найдите долгие операции. Тяжёлые запросы к БД, медленные внешние вызовы, неоптимальный код — их нужно ускорить или вынести в фон.
  • Проверьте ресурсы. Хватает ли серверу процессора и памяти под нагрузку; не пора ли масштабировать.
  • Аккуратно с тайм-аутом. Увеличить лимит ожидания на шлюзе — это «пластырь»: помогает пережить пик, но корень (медленный бэкенд) остаётся.

Как узнавать о таких ошибках первым

Самое неприятное в 504 — узнать о ней от клиента спустя часы. Чтобы этого не было, стоит поставить мониторинг сайта 24/7: сервис сам проверяет сайт каждую минуту и мгновенно шлёт уведомление в Telegram или на почту, как только начинают сыпаться 504 (и любые другие сбои). Тогда вы чините проблему на первых минутах, а не после жалоб.

Частые вопросы

Что значит ошибка 504 Gateway Timeout? Что сервер-шлюз не дождался ответа от бэкенда за отведённое время. Сайт не выключен — он слишком долго отвечает, и шлюз возвращает тайм-аут.

Чем 504 отличается от 502? При 502 бэкенд ответил некорректно или упал, при 504 — не ответил вовремя. 502 — «битый ответ», 504 — «не успел ответить».

504 — это моя вина как посетителя? Почти никогда. Ошибка на стороне сервера сайта. Максимум с вашей стороны — обновить страницу и проверить, не в вашей ли сети дело.

Как убрать 504 на своём сайте? Найти в логах долгие операции и ускорить их, проверить ресурсы сервера и, как временную меру, поднять тайм-аут шлюза. Главное — устранить причину медленного ответа, а не только продлить ожидание.

Подписывайтесь на канал — каждый день разбираем одну реальную задачу по сайтам: ошибки сервера, SSL, DNS, скорость, безопасность — коротко и по делу.