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

Что означает ошибка сервера 504 Gateway Timeout

Представьте: интернет-магазин запустил акцию с большими скидками и анонсировал её в рассылке. На сайт одновременно заходят тысячи людей, и вместо страниц с товарами они видят белый экран с надписью 504 Gateway Timeout. Пока владелец разбирается, что случилось, потенциальные покупатели уходят к конкурентам.

Звучит как страшный сон, но это действительно случается. Разбираемся, что такое ошибка 504, почему она возникает и как её исправить со стороны пользователя и со стороны администратора сайта.

Что означает ошибка 504 Gateway Timeout

Gateway Timeout 504 — это HTTP-статус, который сервер отправляет браузеру, когда не может получить ответ от другого сервера в отведённое время. Пользователь видит, что сайт не открывается. Владелец сайта теряет трафик и продажи. Поисковые системы фиксируют недоступность ресурса и могут понизить его позиции.

Когда пользователь открывает сайт, запрос проходит через несколько узлов. Сначала он попадает на прокси-сервер или шлюз — например, Nginx или балансировщик нагрузки. Тот перенаправляет запрос на основной сервер приложения. Основной сервер обрабатывает его, обращается к базе данных, выполняет скрипты — и отправляет ответ обратно. Если основной сервер не успевает ответить в установленный срок, шлюз возвращает HTTP 504.

Error 504 отличается от похожих ошибок:

  • 502 Bad Gateway — сервер получил неверный ответ. При 504 ответа вообще нет — истекло время ожидания.
  • 503 Service Unavailable — сервер перегружен или на техобслуживании. При 504 проблема в цепочке серверов, а не в доступности конкретного.

Тайм аут шлюза 504 в браузере может выглядеть по-разному в зависимости от сервера и настроек: «504 Gateway Timeout», «Gateway Timeout (504)», «HTTP Error 504», «504 Error» или просто «The page request was cancelled because it took too long to complete».

Чем грозит ошибка 504 Gateway Timeout

У ошибки 504 есть вполне конкретные последствия:

  • Потеря трафика и выручки. Исследования Google показывают: 53% мобильных пользователей покидают сайт, если он не загружается дольше трёх секунд. Amazon подсчитал, что каждые 100 миллисекунд задержки обходятся в 1% выручки — в сегодняшних масштабах это около 3,8 миллиарда долларов в год. Страница, которая вообще не отвечает, теряет 100% посетителей. 
  • Удар по SEO. Яндекс и Google регулярно проверяют доступность сайтов. Если поисковый бот приходит на страницу и получает код ошибки 504, он фиксирует это как временный сбой. Один раз — не страшно. Но если ошибка повторяется или длится долго, сайт может потерять позиции в выдаче. 
  • Репутационные потери. Исследования показывают, что 46% пользователей не вернутся на сайт, если однажды столкнулись с проблемами загрузки, а 77% еще расскажут о плохом опыте другим. 

Распространённые причины ошибки 504

  1. Проблемы с плагинами

Это одна из самых частых причин на сайтах WordPress и других CMS. Плагины работают как дополнительные модули поверх основного движка, и некоторые из них плохо написаны: они делают слишком много запросов к базе данных, зависают при выполнении задачи или конфликтуют друг с другом.

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

  1. Проблемы со скриптами

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

По умолчанию максимальное время выполнения PHP-скрипта составляет 30 секунд. Если скрипт не успевает — соединение обрывается и пользователь видит HTTP 504. Иногда это не баг, а просто скрипт делает слишком много за один раз.

  1. Проблемы в браузере

Иногда дело не в сервере, а на стороне пользователя. Устаревшие данные кэша, некорректно сохранённые cookies или конфликтующие расширения браузера могут мешать нормальному соединению. В этом случае ошибка возникает только у конкретного пользователя, а не у всех посетителей сайта.

  1. Резкое увеличение посещаемости

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

  1. Неправильный выбор тарифного плана хостинга

Виртуальный хостинг на базовом тарифе делит ресурсы сервера между десятками или сотнями сайтов. Если соседний сайт на том же сервере начинает потреблять слишком много ресурсов, это сказывается на всех остальных. Кроме того, с ростом сайта — большой базой данных, сложными страницами, высоким трафиком — базовый тариф просто перестаёт справляться. 

  1. Загрузка на сайт «тяжёлых» файлов

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

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

  1. Вредоносный код в файлах сайта

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

Как исправить ошибку 504: что может сделать пользователь

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

  1. Обновите страницу

Самое очевидное — нажать F5 или Ctrl+R. Таймаут иногда возникает из-за временного сбоя: сервер был перегружен в конкретный момент, но уже восстановился. Подождите 10–20 секунд и попробуйте снова.

  1. Попробуйте другой браузер

Если страница открывается в Chrome, но не открывается в Яндексе — проблема в браузере, а не на сервере. Попробуйте открыть сайт в другом браузере или в режиме инкогнито.

  1. Очистите кэш браузера

Устаревший кэш иногда мешает корректной загрузке страницы. В большинстве браузеров кэш очищается через настройки или сочетанием Ctrl+Shift+Delete. После очистки перезагрузите страницу.

  1. Перезагрузите маршрутизатор и/или модем

Иногда причина в локальной сети. Отключите роутер на 30 секунд, включите снова и дождитесь восстановления соединения. Это сбрасывает кэш DNS на уровне домашней сети.

  1. Проверьте подключение к интернету

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

  1. Попробуйте доступ позже

Если сайт недоступен из-за временной перегрузки, он восстановится сам. Подождите 15–30 минут и попробуйте снова. Также можно проверить статус сайта через сервисы — они покажут, у всех ли возникает эта проблема или только у вас.

  1. Используйте мобильный интернет

Если Wi-Fi не помогает — переключитесь на мобильные данные. Это позволяет исключить проблему на уровне домашней сети или провайдера. Если через мобильный интернет сайт открывается — проблема точно не на сервере.

  1. Отключите расширения браузера

Некоторые расширения — VPN, блокировщики рекламы, антивирусные плагины — могут перехватывать запросы и нарушать соединение. Попробуйте временно отключить все расширения и снова открыть страницу.

Как исправить ошибку 504: действия администратора сайта

Если проблема не на стороне пользователя, её нужно решать на уровне сервера. Вот что стоит проверить в первую очередь.

  1. Переведите сайт на более мощный хостинг

Если сервер регулярно не справляется с нагрузкой — проблему не решить настройками. Нужен более мощный тариф: выделенный сервер, VPS или облачный хостинг с автомасштабированием.

  1. Отключите плагины в системе управления контентом (CMS)

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

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

  1. Ускорьте работу скрипта

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

Во-вторых, можно увеличить таймаут на уровне сервера. В Nginx это параметр proxy_read_timeout, в Apache — ProxyTimeout. Но это скорее временная мера — она не устраняет причину, а лишь даёт скрипту больше времени. Если скрипт работает 120 секунд — это уже не таймаут, а проблема с архитектурой.

  1. Проверьте работу сети серверов (CDN)

CDN (сеть доставки контента) раздаёт статику — картинки, скрипты, стили — с серверов, расположенных ближе к пользователю. Если CDN неправильно настроен или испытывает сбой, запросы к нему будут зависать и провоцировать 504.

Проверьте статус CDN-провайдера на его официальной странице, временно отключите CDN и посмотрите, помогает ли это. Убедитесь, что TTL (время жизни кэша) настроен правильно.

  1. Проверьте на спам, вирусы и DDoS-атаки

DDoS-атака — это поток искусственно созданных запросов, который перегружает сервер. Признаки: резкий рост трафика без объяснимых причин, много запросов с одних и тех же IP-адресов, сервер начал тормозить внезапно.

Для проверки на вредоносный код используют специализированные инструменты: для WordPress — плагины Wordfence или Sucuri, для других платформ — сканеры типа VirusTotal или ImunifyAV, встроенные в многие хостинг-панели.

  1. Решите вопрос с нагрузкой на серверы

Если сервер регулярно испытывает пиковые нагрузки, стоит подумать о долгосрочных решениях. Кэширование страниц снижает количество обращений к базе данных: вместо того чтобы генерировать страницу заново при каждом запросе, сервер отдаёт готовую копию. Балансировка нагрузки распределяет запросы между несколькими серверами — если один перегружен, запрос уходит на другой.

Для WordPress это решают плагины кэширования — WP Super Cache или W3 Total Cache. Для высоконагруженных проектов нужны более серьёзные инструменты: Redis, Varnish или облачные решения с автомасштабированием.

  1. Проверьте логи

Логи — главный инструмент диагностики. В них записывается всё: какие запросы поступали, как долго обрабатывались, какие ошибки возникали. На большинстве серверов логи находятся в /var/log/nginx/error.log (для Nginx) или /var/log/apache2/error.log (для Apache). В панели хостинга (cPanel, ISPmanager) они обычно доступны в разделе «Логи» или «Статистика».

Что искать в логах: записи с кодом 504, упоминания upstream timed out, аномально долгие запросы (время ответа больше 30 секунд), повторяющиеся обращения к одному скрипту или адресу. Если логи содержат много ошибок и непонятно, с чего начать — это задача для технического специалиста.

Итоги

Ошибка сервера 504 — это сигнал о том, что где-то в цепочке обработки запроса что-то не успело ответить вовремя. Причины разные: перегруженный сервер, медленный скрипт, проблемный плагин, DDoS-атака или просто тариф хостинга, который уже не справляется с нагрузкой.

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

Если вы администратор: начните с логов и плагинов. В большинстве случаев причину можно найти за 15–20 минут. Если 504 стала постоянной, а не разовой ошибкой — это повод пересмотреть тариф хостинга или архитектуру сайта.

Если сайт падает с 504 и логи ни о чём не говорят — напишите нам. В DAO есть технические специалисты, которые найдут причину и устранят её, пока вы не потеряли ещё больше трафика.

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