Что такое ошибка 504 и как ее исправить
Хотите зайти на сайт, но вместо контента видите надпись «Ошибка 504 Gateway Time Out»? Давайте разберемся, что она означает и как ее исправить. Но имейте в виду, что скорее всего виноваты не вы.
Что означает код 504

Такой код возникает, когда один сервер в цепочке обработки запроса не получает своевременного ответа от другого сервера, выступающего в роли посредника (шлюза), в течение установленного периода времени (тайм-аута).
Каждый ваш запрос в интернете обрабатывается не одним, а несколькими серверами. Основной из них хранит данные запрашиваемой страницы. Однако между вами и ним часто работают серверы-посредники:
Прокси-серверы – обеспечивают безопасность, шифруют данные или фильтруют трафик.
Кэш-серверы – хранят копии контента в разных точках мира, чтобы ускорить его доставку пользователям и снизить нагрузку на основной сервер.
Балансировщики нагрузки – распределяют входящие запросы между несколькими серверами для повышения производительности и отказоустойчивости.
Главный сервер рассчитывает на слаженную работу этих шлюзов. Если любой из посредников не отвечает основному серверу в оговоренный срок, последний не может сформировать ответ для пользователя и выводит ошибку HTTP 504 Gateway Timeout.
Сообщение об ошибке может выглядеть по-разному в зависимости от браузера:
«Ошибка 504 (Gateway Timeout): Сервер, обрабатывающий ваш запрос, не ответил вовремя».
«Время ожидания ответа сервера истекло».
«Hmmm… не получилось загрузить эту страницу».
«Невозможно открыть страницу. На сервере произошла ошибка 504».
«504 Gateway Timeout nginx».
«Gateway Timeout Error».
«HTTP Error 504».
«504 Gateway Time-out – The server didn’t respond in time».
«HTTP Error 504 – Gateway Timeout».
Причины появления ошибки
Хотя теоретически проблема может быть на стороне клиента (например, переполненный кэш браузера), в подавляющем большинстве случаев ошибка 504 возникает на стороне сервера или инфраструктуры сайта, и ответственность за ее устранение лежит на владельце ресурса или хостинг-провайдере.
Основные причины, почему шлюз не отвечает вовремя:
Нестабильное или медленное соединение между основным сервером и шлюзом.
Ошибки в конфигурации серверного ПО, балансировщика или прокси.
Перегрузка сервера-шлюза.
Основной сервер приложений или базы данных работает очень медленно, не успевая обработать запросы от шлюза.
Внезапные скачки нагрузки: резкий наплыв большого числа пользователей или DDoS-атака.
Запросы к сайту требуют получения или обработки очень большого объема данных из базы или внешних источников, и на них уходит слишком много времени.
Плагины, скрипты или обновления на сервере конфликтуют и вызывают сбои.
Сбои у интернет-провайдера, DNS-провайдера или у хостинг-провайдера (тогда ошибка 504 будет у всех их клиентов).
Недавние обновления, смена IP-адреса, миграции серверов.

Как исправить ошибку
Для пользователя
Поскольку проблема обычно не на вашей стороне, помочь могут только общие советы:
Самый простой и рабочий способ – просто перезагрузите страницу.
Проверьте интернет-соединение. Если его нет, перезагрузите роутер.
Очистите кэш и куки браузера – накопленные данные иногда могут вызывать конфликты.
Попробуйте зайти через другой браузер или устройство.
Иногда антивирус или брандмауэр могут ошибочно блокировать соединение с определенным сервером в цепочке. Выключите их, и попробуйте зайти на сайт еще раз.
Используйте VPN – иногда он помогает обойти возможные проблемы с маршрутизацией или локальные ограничения вашего провайдера.
Свяжитесь с поддержкой сайта. Это ускорит решение, если проблема на их стороне.

Если ничего не помогает – проблема на стороне сайта или его хостинга. Попробуйте просто зайти позже или поискать информацию в другом месте.
Действия для администратора
Здесь требуются более глубокие вмешательства:
Зайдите в панель управления хостингом, посмотрите статус серверов, новости и соцсети провайдера – обычно там сообщают о технических работах или сбоях.
Просмотрите логи сервера. Они – главный источник информации. Ищите записи с кодом 504, чтобы понять, какой именно шлюз или бэкенд завис
Возможно, что время, которое вы установили как тайм-аут, слишком маленькое. В таком случае найдите его параметры и увеличьте их значения, например, с 30 секунд до 60.
Оптимизируйте базу данных: проверьте медленные запросы, добавьте индексы, очистите ненужные данные, оптимизируйте структуру.
Настройте кэширование статики и контента – это облегчит работу сервера.
Если используете несколько шлюзов, проверьте, что трафик распределяется равномерно и корректно. Иногда возникают ситуации, что вся нагрузка идет на один из серверов, а остальные работают вхолостую.
Если сервера постоянно перегружены, рассмотрите апгрейд их процессоров и оперативной памяти, добавление новых серверов или переход на более мощный тариф/хостинг.
Обновите серверное ПО.
Убедитесь, что между вашими серверами нет проблем с соединением.

Профилактика ошибки 504
Предотвратить ошибку гораздо эффективнее, чем постоянно ее исправлять:
Не ждите возникновения ошибки, а периодически изучайте логи сервера на предмет предупреждений или медленных запросов.
Постоянно работайте над эффективностью кода, выявляйте и устраняйте медленные участки.
Грамотно настроенное кэширование – ключ к снижению нагрузки и повышению скорости отклика.
Используйте балансировщик нагрузк – он распределит запросы и повысит отказоустойчивость.
Используйте системы мониторинга (Zabbix, Nagios, Datadog, New Relic) для отслеживания: нагрузки на серверы, времени отклика серверов и шлюзов, статусов сервисов и кодов HTTP-ответов (включая 504). Системы мониторинга могут предупредить о проблеме до того, как ее увидят пользователи.
Прогнозируйте рост нагрузки и заранее масштабируйте серверную инфраструктуру.
Перед запуском новых функций или во время подготовки к пикам трафика проводите стресс-тесты.

***
Если вы пользователь и видите 504, терпение – часто самое лучшее решение, пока проблема не будет устранена на другом конце. Реальная причина почти всегда находятся на стороне владельца сайта или его хостинг-провайдера.
***
В России запретили Speedtest. Чем теперь замерять скорость интернета?



























