Ошибка 504 — Прочая техника и сервисы
Что это значит
Код ошибки 504 (Gateway Timeout) — это HTTP-статус, указывающий, что сервер, выступающий в роли шлюза или прокси, не получил своевременного ответа от вышестоящего сервера. В контексте веб-сервисов это означает, что один сервер (например, nginx) ждал ответа от другого (например, сервера приложений), но время ожидания истекло. Пользователь видит сообщение «504 Gateway Timeout» или аналогичное. Ошибка часто возникает при перегрузке бэкенда, медленных запросах к базе данных или неправильной настройке таймаутов.
Вероятные причины
- Перегрузка сервера приложений (высокая нагрузка, нехватка ресурсов)
- Медленные запросы к базе данных (долгие транзакции, блокировки)
- Некорректные таймауты в конфигурации прокси/шлюза (например, nginx proxy_read_timeout)
- Сбой в работе вышестоящего сервера (остановка, зависание процесса)
- Проблемы с сетью между шлюзом и бэкендом (потери пакетов, высокая задержка)
- Утечка памяти или потоков в приложении, приводящая к зависанию
- Неправильная балансировка нагрузки (часть серверов не отвечает)
- Ошибка в коде приложения (бесконечный цикл, deadlock)
Что делать — по порядку
- Проверить логи сервера приложений и шлюза (например, /var/log/nginx/error.log) на наличие ошибок и медленных запросов.
- Увеличить таймауты в конфигурации прокси (proxy_read_timeout, proxy_connect_timeout) до 60-120 секунд для теста.
- Проверить нагрузку на сервер (CPU, память, диск) с помощью top, htop, iostat.
- Оптимизировать медленные запросы к БД: добавить индексы, проверить EXPLAIN, увеличить пул соединений.
- Перезапустить сервер приложений (например, php-fpm, uwsgi, gunicorn) для сброса состояния.
- Проверить конфигурацию балансировщика (haproxy, nginx upstream) на наличие неработающих бэкендов.
- Временно отключить кэширование или включить кэширование ответов для снижения нагрузки.
- Масштабировать горизонтально: добавить дополнительные экземпляры приложения или увеличить ресурсы.
Нажимайте на пункты, чтобы отмечать выполненные.
Частые вопросы
Что означает ошибка 504?
Ошибка 504 Gateway Timeout означает, что сервер-шлюз не дождался ответа от вышестоящего сервера в течение заданного времени.
Как исправить ошибку 504 на сайте?
Попробуйте обновить страницу через несколько секунд. Если ошибка повторяется, обратитесь к администратору сайта.
Почему возникает 504 ошибка?
Причины: перегрузка сервера, медленные запросы к БД, неправильные таймауты, сбой в работе приложения.
Ошибка 504 — это проблема сервера или клиента?
Это проблема сервера (5xx), но может быть вызвана временной перегрузкой. Клиент может только повторить запрос позже.
Как увеличить таймаут в nginx для устранения 504?
Добавьте в конфигурацию nginx: proxy_read_timeout 120s; proxy_connect_timeout 120s; и перезагрузите nginx.
Источники
- HTTP 504 - HTTP | MDN проверено 28.07.2026
- nginx documentation: proxy_read_timeout проверено 28.07.2026
Где встречается
HTTP-серверы (nginx, Apache, IIS), прокси-серверы, балансировщики нагрузки, веб-приложения (PHP, Python, Java, .NET), API-шлюзы.