Что означает ошибка сервера 504 Gateway Time Out и как ее исправить

Обсудить
Ошибка сервера 504

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

Сообщения, кодирующиеся в формате 5хх, говорят о проблеме на стороне сервера, напимер, когда невозможно выполнить запрос из-за нарушения связи между несколькими серверами. Ошибка 504 Gateway Time Out не является распространенной, но это не значит, что на нее не стоит обращать внимания, особенно владельцу сайта. Рассмотрим некоторые причины возникновения данной ошибки и способы ее устранения как на стороне обычного посетителя, так и администратором веб-ресурса.

Ошибка 504 Gateway Time Out– это код состояния HTTP, который появляется, когда в течение заданного периода времени один сервер не получает своевременный ответ от другого сервера, который действует как шлюз или прокси.

Описания ошибки могут иметь различную форму:

  • 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 

Итак, вы столкнулись с появлением на экране сообщения «error 504». Не спешите уходить с сайта, ведь возникновение сбоя может говорить о неправильной работе вашего браузера или даже наличии более серьезных проблем на уровне пользовательского софта. Попробуйте произвести довольно простые действия, чтобы убедиться, что с вашим программным обеспечением и настройками все в порядке. 

  1. Перезагрузите проблемную страницу или текущий браузер. Если проблема устранилась и не повторяется вновь, особенно при посещении других сайтов, о ней можно просто забыть. При регулярном возникновении однотипных ошибок во время посещения разных ресурсов стоит покопаться в настройках собственного ПО поглубже.
  2. Зайдите на тот же самый сайт, где возникла ошибка сервера 504, используя альтернативный браузер. В случае, когда страница во время тестирования открылась корректно, обновите браузер, в котором случился сбой, до последней версии.
  3. Проверьте, как открываются страницы этого же сайта с другого компьютера или смартфона. Это позволит вам понять, не связано ли появление ошибки 504 с ПО конкретного устройства.
  4. При регулярном появлении HTTP ошибок, в т.ч. с кодом 504, очистите кэш браузера, удалите файлы cookies. Со временем в любом браузере накапливается много «мусора». Произведя очистку, вы поможете программе работать более корректно и даже быстрее.
  5. Произведите сброс настроек роутера или модема, отключив оборудование на некоторое время от сети. Данная операция вряд ли приведет к устранению ошибки 504, но может улучшить качество интернет-соединения. Провайдеры регулярно вносят изменения в настройки собственного софта, обновляют его. Иногда это приводит к конфликту в корректном взаимодействии пользовательского оборудования и серверов оператора. Перезагрузка устройства по питанию в большинстве случаев решает такие проблемы.
  6. Очистите кэш DNS. Данная операция кажется сложной для обычного пользователя, но на деле выполнить ее достаточно легко. Способ очистки зависит от вашей операционной системы, найдите соответствующий мануал в интернете.
  7. Для опытных пользователей подойдет рекомендация временно переключить DNS-сервер на Google Public DNS, что как минимум поможет определить, возник ли ошибочный код состояния HTTP по причине DNS проблемы. 

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

Решение проблем с появлением ошибки сервера 504 администратором веб-ресурса 

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

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

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

Почти все ошибки с кодом 5хх, возникающие из-за невозможности обработки определенного количества запросов, поступающих на сервер, решаются методом апгрейда железа (использованием высокопроизводительного хостинга) либо оптимизацией работы программного обеспечения. Второй способ зависит от вида движка, на котором создан конкретный сайт. При использовании условно-бесплатных программ (WordPress, OpeneCart и других) все проблемы придется решать на уровне администрирования, с привлечением конкретного веб-программиста, разработавшего данный сайт. Если баги возникают на платных платформах (1С-Битрикс, UMI.CMS, NetCat CMS), напишите об ошибке 504 Gateway Time Out в техподдержку разработчика. Отправить сообщение о проблеме следует и разработчикам платных скриптов, если они установлены на вашем сайте, и вы считаете, что сбои возникают по причине их некорректного исполнения. 

Вот некоторые причины, приводящие к возникновению ошибки 504 Gateway Time Out

  • Резкий скачок нагрузки на сайт вследствие поступления большого количества внешних запросов, вызванного DDoS-атаками или действиями вирусного ПО, пиковым посещением сайта, например, в момент проведения различных акций в интернет-магазине, или единовременной загрузкой на сайт большого объема контента (импорт информации из CSV- или XML-файлов).
  • Некорректная работа скриптов, плагинов и дополнений, конфликтующих как между собой, так и внутри.
  • Превышение лимита доступных ресурсов при использовании виртуального хостинга.

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

Рекомендации по устранению ошибки 504 Gateway Time Out методами администрирования сайта

Ошибка 504 Gateway Time Out может быть вызвана недавними изменениями или обновлениями на сайте. Если после отката к состоянию, предшествующему изменениям, баг исчез, следует найти конкретное действие, повлекшее возникновение ошибки. Для этого необходимо проверить журнал ошибок соответствующей CMS. Пользователи WordPress могут включить журналирование ошибок в файле wp-config.php добавлением следующих строк: 

define( 'wp_debug', true );
define( 'wp_debug_log', true );
define( 'wp_debug_display', false )

Все возникающие варианты ошибок будут записаны в файле wp-contents/debug.log.

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

При использовании CDN для более быстрого получения контента, в частности CloudFlare, который работает как CDN и как сервис предотвращения негативных последствий от DDoS, вы можете столкнуться с двумя типами ошибок 504. В случае возникновения проблемы на стороне CloudFlare лучшим решением будет связаться с поддержкой CloudFlare или отключить его. Второй вариант – когда сбой возникает на стороне хостинг-провайдера. В этой ситуации также необходимо обратиться в службу поддержки хостера.

Часто ошибку 504 можно видеть на серверах, где используется VPS-хостинг и установлен Nginx в качестве фронтенда и Apache в качестве бэкенда. Для устранения проблемы в Apache можно увеличить значение timeout по умолчанию в файле httpd.conf:

# Timeout: The number of seconds before receives and sends time out.

Timeout 600

Также увеличить лимит в max_execution_time в php.ini: 

max_execution_time 300

После внесения изменений следует перезапустить Apache. Ошибка 504 Gateway Time Out должна исчезнуть.

Аналогичным образом проблема с появлением ошибки HTTP 504 решается пользователями Nginx. Попробуйте увеличить такие параметры в файле /etc/nginx/conf.d/timeout.conf:

proxy_connect_timeout 600;

proxy_send_timeout 600;

proxy_read_timeout 600;

send_timeout 600;

Также рекомендуется увеличить max_execution_time в php.ini:

max_execution_time 300

Далее перезапустите Nginx и откройте сайт. 

Более простым решением устранения данной проблемы является использование панели управления сервером.

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

Например, в бесплатной панели управления Vesta Control Panel достаточно внести изменения в раздел «Сервер» и навсегда забыть о возможности возникновения ошибок на сайте.

Ошибка ответа сервера 504 Vesta Control PanelИ далее внести соответствующие изменения.

Ошибка ответа сервера 504 Vesta Control Panel

Изменение php.ini в VestaCP

Аналогичным способом проблема устраняется и при использовании альтернативных панелей управления хостингом – AjentiCentOS Web Panel, ISPmanager и других.

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

Заключение

В данной статье мы рассмотрели основные причины возникновения ошибки HTTP 504 Gateway Timeout и популярные способы устранения неполадки. Уверен, некоторые администраторы веб-ресурсов сталкивались с подобными проблемами, выходящими за рамки приведенных примеров и рекомендаций.

Буду благодарен, если вы поделитесь своим опытом в комментариях.

Комментарии