Introducing ZYNOO General Purpose & CPU Optimized Servers   Learn More >

Как исправить ошибку 504 Gateway Timeout: 7 способов

Ошибка 504 Gateway Timeout возникает, когда сервер, выполняющий роль шлюза или прокси, не получает вовремя ответ от другого сервера. Обычно это происходит, если серверное приложение сайта работает медленно, перегружено или испытывает проблемы с подключением.

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

Вот семь практических способов найти и устранить причину ошибки.

Что вызывает ошибку 504 Gateway Timeout?

Многие сайты используют несколько серверов или сервисов для обработки запросов.

Например, браузер может подключаться к Nginx или CDN, которые затем перенаправляют запрос на сервер приложения.

Если приложение отвечает слишком долго, шлюз может вернуть ошибку 504 вместо запрошенной страницы.

Распространённые причины:

  • Перегруженные или не отвечающие серверы приложений.
  • Медленные запросы к базе данных или внешним API.
  • Недостаток ресурсов CPU, оперативной памяти или рабочих процессов приложения.
  • Проблемы с сетью между шлюзом и сервером приложения.
  • Ограничения времени ожидания прокси или приложения.
  • Неправильная настройка CDN или хостинговой инфраструктуры.

Ошибка 504 обычно связана с сервером, хотя проблемы с конкретным подключением иногда могут затрагивать отдельных посетителей.

Причины ошибки 504 Gateway Timeout

1. Обновите страницу и проверьте доступность сайта

Если Вы просто посещаете сайт, немного подождите и обновите страницу.

Временная перегрузка сервера или прерванный запрос к серверному приложению могут исчезнуть без вмешательства.

Также можно попробовать другой браузер или сеть, чтобы проверить, связана ли проблема именно с Вашим подключением.

Если ошибка возникает у всех, разбираться в её причинах, как правило, потребуется владельцу сайта или хостинг-провайдеру.

Не отправляйте повторно платежи, заказы или формы. Операция на сервере могла завершиться, даже если шлюз не дождался ответа.

2. Проверьте журналы сервера и приложения

Если Вы управляете сервером, лучше всего начать с файлов журналов.

Для Nginx проверьте журнал ошибок:

sudo tail -n 50 /var/log/nginx/error.log

Ищите сообщения, похожие на следующее:

upstream timed out (110: Connection timed out)

Они указывают на то, что Nginx слишком долго ждал ответа от вышестоящего сервера.

Затем проверьте журналы приложения, чтобы выяснить, почему оно отвечало медленно.

Также можно проверить службу, управляемую systemd:

sudo journalctl -u myapp -n 50

Замените myapp фактическим именем Вашей службы.

3. Проверьте использование CPU, оперативной памяти и диска

Загруженному серверу может быть сложно обработать запрос до истечения времени ожидания шлюза.

Проверьте использование памяти:

free -h

Проверьте свободное место на диске:

df -h

Проверьте процессы:

top

Обратите внимание на постоянную нехватку ресурсов, исчерпание оперативной памяти, заполненные файловые системы и необычно загруженные процессы.

Сами по себе эти данные не доказывают причину истечения времени ожидания запроса, но могут помочь найти узкие места в производительности.

4. Изучите тайм-ауты Nginx и вышестоящего сервера

Если Nginx используется как обратный прокси, проверьте, успевает ли серверное приложение ответить до истечения установленных тайм-аутов.

Для серверных приложений, работающих по HTTP, конфигурация может содержать:

location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_read_timeout 60s;
}

Параметр proxy_read_timeout определяет, как долго Nginx ждёт между последовательными операциями чтения ответа от серверного приложения, а не общую продолжительность всего запроса.

Прежде чем увеличивать это значение, проверьте приложение напрямую:

curl --max-time 15 -i http://127.0.0.1:3000/

Замените адрес фактическим адресом конечной точки Вашего приложения. Некоторые маршруты приложения могут требовать аутентификации или возвращать корректный ответ с кодом, отличным от HTTP 200.

Если само приложение работает медленно, увеличение тайм-аута Nginx может лишь скрыть основную проблему.

Если более длительное время ожидания действительно необходимо, проверьте также настройки тайм-аутов приложения. Для приложений на базе PHP-FPM и FastCGI в Nginx используются другие директивы, чем для серверных приложений, работающих через HTTP-прокси.

После изменения конфигурации проверьте её перед перезагрузкой Nginx:

sudo nginx -t
sudo systemctl reload nginx

Перезагружайте Nginx только в том случае, если проверка конфигурации прошла успешно.

5. Проверьте Cloudflare или Вашу CDN

Если Ваш сайт использует Cloudflare или другую сеть доставки контента, выясните, где возникает тайм-аут: на стороне CDN или исходного сервера.

Проверьте сведения об ошибке в Вашей CDN и сопоставьте их с журналами исходного сервера.

Ошибка 504 может исходить от вышестоящего сервиса за Вашим исходным сервером или возникать на другом этапе обработки запроса.

У Cloudflare есть собственные ограничения времени ожидания подключения и ответа, поэтому увеличение значения параметра Nginx не обязательно позволит обойти ограничение, установленное CDN.

Не отключайте функции безопасности или кэширования, пока не установите источник тайм-аута.

6. Изучите медленные запросы к базе данных и внешним API

Иногда веб-сервер работает исправно, но приложение ждёт ответа от другого сервиса.

Распространённые примеры:

  • Запрос к базе данных выполняется слишком долго.
  • Внешний API отвечает медленно.
  • Исчерпаны пулы рабочих процессов приложения.
  • Фоновые задачи конкурируют за ресурсы.
  • Блокировки в базе данных задерживают обработку запросов.

Изучите журналы приложения, журналы медленных запросов и показатели работы сервисов, чтобы найти причину задержки.

Если причина в запросе к базе данных, проверьте индексы, планы выполнения запросов и использование соединений.

Для обращений к внешним API настройте разумные тайм-ауты и обработку ошибок. Если приложение это поддерживает, длительные задачи может быть лучше выполнять асинхронно.

7. Обратитесь к хостинг-провайдеру

Если устранить ошибку 504 Gateway Timeout не удаётся, обратитесь к хостинг-провайдеру и предоставьте собранные сведения.

Укажите затронутый домен, время появления проблемы, возникает ли она периодически, а также приложите относящиеся к ней сообщения из журналов.

Сообщите о недавних изменениях в настройках приложения, базы данных, CDN или обратного прокси.

Хостинг-провайдер может помочь разобраться с ограничениями ресурсов и проблемами инфраструктуры, к которой у Вас нет административного доступа.

Ошибки шлюза 502 и 504: в чём разница?

Эти ошибки связаны между собой, но указывают на разные проблемы при взаимодействии с вышестоящим сервером.

ОшибкаЗначение
502 Bad GatewayШлюз получил некорректный ответ от вышестоящего сервера
504 Gateway TimeoutШлюз не получил необходимый ответ от вышестоящего сервера вовремя

Например, если приложение неожиданно закрывает соединение, может возникнуть ошибка 502, а если отвечает слишком долго — ошибка 504.

Как предотвратить ошибки 504 Gateway Timeout

Предотвратить каждый тайм-аут невозможно, но грамотное управление инфраструктурой помогает сократить их число.

  • Отслеживайте время ответа приложения и использование ресурсов.
  • Исследуйте медленные запросы к базе данных.
  • Настройте подходящее кэширование для часто запрашиваемого контента.
  • Установите разумные тайм-ауты для вышестоящих серверов и приложения.
  • Следите за работой серверных сервисов и доступностью рабочих процессов.
  • Проверяйте значительные изменения конфигурации перед их внедрением.

Увеличивать тайм-ауты следует обдуманно, а не в качестве первого шага при поиске причины ошибки.

Часто задаваемые вопросы

Является ли 504 Gateway Timeout серверной ошибкой?

Да. HTTP 504 — это серверный код состояния, который означает, что шлюз или прокси не получил вовремя ответ от вышестоящего сервера.

Может ли очистка кэша браузера устранить ошибку 504?

Обычно нет. Очистка кэша браузера не устранит перегрузку серверного приложения или отсутствие ответа от него. Однако проверка в другом браузере или через другое подключение поможет исключить локальные проблемы.

Может ли ошибка 504 быть временной?

Да. Временная перегрузка или медленный запрос к серверному приложению могут быстро перестать вызывать ошибку, а повторяющиеся тайм-ауты указывают на проблему, требующую расследования.

Могут ли ошибки 504 возникать на сайтах WordPress?

Да. На сайтах WordPress и в других приложениях ошибки 504 могут возникать, если запросы к базе данных, обработка PHP или работа вышестоящих сервисов занимают слишком много времени.

Стоит ли увеличивать тайм-аут Nginx, чтобы исправить ошибку 504?

Только если приложению действительно требуется больше времени и это допускают остальные ограничения инфраструктуры. Сначала выясните, почему задерживается ответ серверного приложения.

Заключение

Ошибка 504 Gateway Timeout означает, что шлюз слишком долго ждал ответа от вышестоящего сервера.

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

Самый надёжный способ устранить ошибку — найти источник задержки, а не бездумно увеличивать тайм-ауты или перезапускать службы.

Table of Content

Ошибка 502 Bad Gateway в Nginx обычно означает, что Nginx не смог получить корректный ответ

MCP-сервер — это программа, которая позволяет ИИ-приложениям подключаться к внешним инструментам, сервисам и источникам данных

Нужен ли вам VPS-хостинг? Скорее всего, нет, если ваш сайт стабильно работает на виртуальном хостинге.

Build your next project with ZYNOO

From your first website to demanding applications, choose the resources and control you need.

Shared Hosting

Start your blog or business website with cPanel, LiteSpeed and CloudLinux.

VPS Hosting

Grow your websites and applications with NVMe storage, KVM virtualization and full root access.

Dedicated Servers

Power demanding projects with your own physical server, dedicated resources and control over your environment.

Прокрутить вверх