Сбой соединения с сервером status 504. Коды всех ошибок. Причины появления ошибки

Если сервер, на котором располагается ваш ресурс, перегружен (это происходит вследствие исчерпывания лимита трафика), он выдает пользователю сообщение: «Ошибка 504 gateway time out». В переводе на русский это означает: "время ответа шлюза вышло, шлюз не отвечает". Возникает ситуация, когда Apache чисто физически не может обработать все http-запросы, и они встают в очередь. Однако проходит лимитное время, и приходит сообщение о том, что запрос не обработан.

Чтобы исправить ситуацию, необходимо оптимизировать ваш сервер. Для этого нужно изменить объем оперативной памяти и количество запросов http (Apache) в сторону их увеличения. Еще один вариант — оптимизировать работоспособность всех скриптов, находящихся на вашем сайте. Данная операция поможет поднять производительность обработки.

Если же вы оплачиваете свой хостинг, то следует сразу же обратиться за помощью в саппорт. Служба поддержки обязана проверить ваш сайт на наличие каких-то неисправностей и при возможности «отремонтировать» его. Не стоит пренебрегать такой возможностью. "Дырок", которые необходимо залатать, может быть больше, чем вы думаете. Некоторые хостинг-провайдеры осуществляют техническую поддержку по телефону. Данный вид помощи очень полезен, если вы в первый раз столкнулись с такими техническими проблемами, как ошибка 504. Благодаря такому саппорту вы сможете научиться устранять их самостоятельно, без посторонней помощи.

Есть и еще одна причина, по которой может возникнуть 504-ошибка: скрипт, выполняющий какую-то команду, не укладывается в те временные рамки, которые для него заданы. Это может быть связано с запросом сторонних ресурсов, либо он сам в это время занимается другим делом. Например, выстраивает поисковый индекс.
Для удаления неисправности вы можете пойти двумя путями:
1) облегчить скрипт путем его оптимизации;
2) увеличить значение PHP-параметра max_execution_time.
Еще раз хотелось бы затронуть вопрос о технической поддержке хостинг-провайдера, на котором расположен ваш сайт. Безусловно, у каждого он свой, но обязанности саппортов для всех обязательны. Бывают такие случаи, когда вопросы, отправленные в службу поддержки, остаются без внимания. Особенно если это касается каких-нибудь лагов. Например, возникает та же самая ошибка 504. В этом случае меняйте хостинг. Если начнутся более серьезные проблемы, то вряд ли вы сможете рассчитывать на их помощь.


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

Вот и все, что хотелось вам рассказать о таком явлении, как ошибка 504. Пускай она встречается вам как можно реже!

Эта статья поможет разобраться, почему на сайтах время от времени появляется ошибка 502 Bad Gateway nginx (HTTP Error 502) и как эту проблему решить.

Если вы посетитель

Если вы не можете попасть на сайт из-за ошибки 502, сделать можно не так много:

  • Перезагрузить страницу, сбросив кеш (Ctrl+Shift+R, Ctrl+F5 или Shift+F5). К сожалению, это помогает не так часто, как хотелось бы.
  • Зайти попозже. Через минуту, через полчаса, ночью или рано утром. Скорее всего сервер перегружен. Исправить это вы не сможете, этим должен заняться администратор сайта. Если сайт для вас важный, и у вас есть время, напишите администратору письмо. Чем больше обращений, тем вероятнее, что на проблему обратят внимание и серьезно ей займутся.

Если вы администратор сайта

Если эта ошибка возникает, значит HTTP-запросы от посетителей к вашему сайту идут через так называемый «шлюз», программу-посредник. Например, если на хостинге перед веб-сервером Apache стоит веб-сервер nginx, то nginx будет шлюзом.

502-ая ошибка означает, что запрос от клиента прошел nginx, попал к Apache, и Apache не смог запрос обработать, о чем сообщил nginx’у. В результате nginx отдает клиенту ошибку.

Если PHP работает в режиме FastCGI, то любой веб-сервер перед ним будет шлюзом.

Почему Apache не смог обработать запрос? Как это исправить?

Скорее всего, если сайт раньше работал, а теперь не открывается, дело не в ошибках конфигурации среды. Причина может быть в нехватке ресурсов сервера, и, следовательно, в невозможности обслужить всех клиентов. В частности, проблема может быть в нехватке оперативной памяти. Или вы можете упираться в какое-то ограничение, например, на количество процессов. Иногда Apache или ваше приложение могут периодически падать/перезапускаться, в эти моменты фронт-серверу тоже ничего не остаётся, кроме как отдавать ошибку 502. Такое может случиться и на VPS, и на shared-хостинге.

  • Если проблема регулярно возникает на обычном хостинге, вы не сможете решить ее самостоятельно. Обратитесь в техподдержку, там этим займутся. Если ситуация не меняется, возможно имеет место или сервер плохо настроен. Подумайте о смене провайдера.
  • Если у вас VPS, то, напротив, скорее всего ошибка 502 - ваша зона ответственности.

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

Если у вас VPS

Если PHP работает через FastCGI, то на сервере может не хватать php-cgi процессов в моменты, когда на сайте много посетителей, пришел прожорливый бот, кто-то скачивает ваш сайт целиком или идёт DoS-атака. Веб-серверу нужно бы запустить дополнительные процессы, но памяти под них уже нет. Значит, нужно добавить памяти либо оптимизировать расход доступной

Если дело в нехватке памяти, то в логах будут ошибки OOM (out of memory). Когда ОС очень нужна память, то ядро может попытаться освободить её при помощи механизма OOM killer, просто убивая активные процессы. Например, здесь пришлось пожертвовать Апачем:
Out of memory: kill process 1718 (apache2) score 56789 or a child
Killed process 22504 (apache2)

Другой случай - когда, Apache периодически падает/перезапускается независимо от текущей нагрузки на сайт. В error.log может быть написано:

AH00052: child pid 5858 exit signal Segmentation fault (11)
AH00169: caught SIGTERM, shutting down

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

Наверняка многие пользователи Интернета и компьютерных сетей не один раз сталкивались с такой неприятной ситуацией, как появление в браузере кода 504 (ошибка). Не все достаточно четко представляют себе, почему происходит такой сбой и как все это исправить. Давайте посмотрим, что к чему.

Что означает ошибка «504 Gateway time out»?

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

Иными словами, обработка подобного рода запросов попросту имеет свои ограничения по времени, в течение которого сервер должен отослать отзыв. На разных серверах это время имеет и разные значения. В любом случае, если появляется сообщение с кодом 504 (ошибка), значит оно просто истекло, то есть в течение этого временного промежутка от сервера ответ получен не был.

Причины появления ошибки

Теперь, насколько это возможно максимально просто, затронем технический аспект. Итак, у нас появляется ошибка 504. Что значит такое сообщение с точки зрения взаимодействия терминала пользователя и удаленного сервера?

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

Понятно, что если nginx вовремя не получает ответа от Apache-сервера, он вместо ожидаемого результата и выдает пользователю сообщение с кодом 504 (ошибка). Впрочем, такие ситуации можно исправить, причем даже самым элементарным способом.

Код 504 (ошибка): как с этим бороться?

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

Как правило, это либо кнопка «Обновить», либо использование функциональной клавиши F5. Такое правило действует для всех браузеров без исключения. Возможен, правда, более долгий вариант, когда связь является нестабильной. Очень может быть, что в данном случае придется перезагрузить всю систему или даже маршрутизатор (в частности, при использования доступа в Интернет через Wi-Fi-подключение).

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

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

Проблемы при инсталляции приложений

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

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

Кстати сказать, если наблюдается неправильная работа исполняемых скриптов, отвечающих за данный процесс на хостинге, рекомендуется использовать редактирование файла php.ini, в котором нужно найти строку php_max_execution_time и изменить стандартное значение времени исполнения с 30 секунд на большее значение. Но и увлекаться этим не стоит, а то отклика придется ждать достаточно долго. Впрочем, даже при использовании определенного сервера в качестве хостинга даже у его владельца можно узнать рекомендуемые настройки.

Заключение

Как уже можно понять, сама ошибка с кодом 504 критической не является. И это ни в коем случае не может свидетельствовать о нарушениях в работе операционной системы (разве что проблема с вирусами). На самом деле вся проблема кроется в основном только в удаленных ресурсах, которые бывают не способны вовремя отвечать. Но ничего страшного в этом нет, поскольку в большинстве случаев проблема решается достаточно просто.

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

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

502 ошибка Bad Gateway может проявляться по-разному. К примеру, 502 – Service Temporarily Overloaded или HTTP Error 502 – Bad Gateway .

Что вызывает 502 ошибку сервера

Ошибка 502 говорит о том, что обратный прокси-сервер (допустим, Apache ) для сервера источника (например, nginx ) получает некорректный ответ от исходного веб-сервера.

Посмотрев внимательнее, мы обнаружили, что Apache работает в нем как прокси nginx . Веб-сервер перезагружал http-сервис почти каждый час. Наш опыт в устранении подобных ошибок показывает, что ошибка 502 Bad Gateway появляется по одной из следующих причин:

  1. Перегруженность сервера . Веб-сервер может падать из-за нехватки ресурсов (например, оперативной памяти ), вызываемой избытком выполняемых процессов или агрессивными действиями пользователей;
  2. . Такое случается при ошибках конфигурации, сбоях в модулях, любых атаках, избытке выполняемых процессов и приложений. В результате пользователь видит временную 502 ошибку;
  3. Плохой код сайта . Сайты с устаревшими приложениями или корявым кодом влияют на правильное функционирование сервера и ведут к периодическому возникновению 502 ошибки;
  4. Ошибки сети . Прочие ошибки конфигурации сети (проблемы с DNS, маршрутизация, блокировка файерволом, используемым на сервере, проблемы у провайдера ) также становятся причиной появления 502 ошибки сервера;
  5. Время ожидания серверного программного обеспечения . 502 ошибка неизбежна при снижении скорости выполнения запросов в nginx, когда средство кэширования (например, Varnish Cache ) уходит в таймаут. Сюда же относятся и медленные запросы.

Как исправить 502 серверную ошибку в nginx

Сначала необходимо определить первопричину возникновения данной ошибки. Мы изучили серверные логи во время перезагрузок, и нашли там ошибки seg fault .

Затем мы покопались в конфигурации сервера, и увидели, что там отсутствовал модуль mod_rpaf . Именно это и вызывало падение сервера:

root@server [~]# ls -l /usr/local/apache/modules/mod_rpaf-2.0.so /bin/ls: cannot access /usr/local/apache/modules/mod_rpaf-2.0.so: No such file or directory

Rpaf – это модуль Reverse proxy add forward , разработанный для серверов Apache . Он нужен в том случае, если вы задаете Nginx фронденд-сервером и хотите получить реальный IP серверных запросов.

Данный модуль не работал под Apache-2.4 , поэтому мы немного его подправили. После перекомпиляции и перезагрузки Apache ошибки сегментации прекратились.

Мы последили за сервером еще пару часов и убедились в том, что перезагрузки прекратились, а серверные ошибки исчезли.

Вот несколько советов, как исправить ошибку 502 bad gateway :

  • Следите за тем, чтобы файлы сайта (плагины и темы ) своевременно обновлялись и не устаревали;
  • Оптимизируйте и исправляйте медленные MySQL-запросы ;
  • Проводите аудит серверного программного обеспечения и вовремя обновляйте модули;
  • Избегайте проблем с маршрутизацией и отслеживайте любые перегрузки/атаки на сервер.

Перевод статьи «HOW TO FIX «502 SERVER ERROR – BAD GATEWAY» IN WEB SERVERS » был подготовлен дружной командой проекта .

Хорошо Плохо

Ошибка 504 Gateway Timeout – это код состояния HTTP , который означает, что один сервер не получил своевременный отклик от другого сервера, к которому он обратился, пытаясь загрузить веб-страницу или выполнить запрос браузера. Она может возникать вместе с 502 Bad Gateway .

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

Как можно увидеть ошибку 504

Отдельным сайтам разрешено настраивать отображение ошибки Gateway Timeout . Вот несколько распространенных способов вывода подобной ошибки:

504 Gateway Timeout HTTP 504 504 ERROR Gateway Timeout (504) HTTP Error 504 - Gateway Timeout Gateway Timeout Error

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

Помните, что ошибка 504 Gateway Timeout и 502 Bad Gateway ngin может появиться в любом браузере, операционной системе и на любом устройстве.

Причины возникновения ошибки 504 Gateway Timeout

В большинстве случаев ошибка 504 Gateway Timeout означает, что любой сервер, который выдает «тайм-аут », «упал » или неправильно работает.

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

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

  1. Перезагрузите веб-страницу, нажав кнопку обновление / перезагрузка, в F5 или повторив URL-адрес из адресной строки.

Несмотря на то, что 504 Gateway Timeout и ошибка 502 Bad Gateway сообщает о неподконтрольной вам ошибке, проблема может быть временной. Просто перезагрузите страницу — это быстро и легко.

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

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

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

Подсказка . Смотрите Proxy.org обновленный, проверенный список прокси-серверов, которые можно использовать.

Примечание . Большинство компьютеров не имеют настроек прокси-сервера, поэтому, если ваши настройки пусты, пропустите этот шаг.

  1. Измените DNS-сервер. Возможно, ошибка 504 Gateway Timeout , которую вы видите, вызвана проблемой с DNS-сервером , который вы используете.

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

Подсказка . Если не все сетевые устройства получают ошибку HTTP 504 или 502 error Bad Gateway , но все они находятся в одной сети, изменение DNS-сервера не сработает. Если это похоже на вашу ситуацию, переходите к следующей идее.

  1. Если изменений не произошло, обратитесь к сайту. Это единственное, что вы можете сделать. Велика вероятность, что администраторы сайта уже работают, чтобы исправить первопричину ошибки 504 Gateway Timeout .

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

Подсказка . Если начинает казаться, что сайт выдает 504 ошибку для всех, поищите в Twitter в режиме реального времени информацию о недоступности сайта. Лучший способ сделать это — найти #websitedown в Twitter . Например, если Facebook может быть недоступен, выполните поиск по тегу #facebookdown .

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

Регулярно проверяйте сайт. Без сомнения, он снова начнет работать.

Исправление ошибки 504 на вашем собственном сайте

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

Большие объемы трафика могут привести к тому, что ваш сервер будет выдавать ошибку 504 . Хотя 503 или ошибка 502 Bad Gateway будет более вероятна.

В частности, в WordPress сообщение 504: Gateway Timeout иногда возникает из-за поврежденных баз данных. Установите WP-DBManager и попробуйте применить функцию «Восстановить БД », а затем «Оптимизировать БД ». Посмотрите, поможет ли это.

Убедитесь, что ваш файл HTACCESS правильный. Особенно если вы только что переустановили WordPress .

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

Больше способов увидеть ошибку 504

Ошибка Gateway Timeout при получении в Windows Update генерирует код ошибки 0x80244023 или сообщение WU_E_PT_HTTP_STATUS_GATEWAY_TIMEOUT .

В программах на базе Windows , которые изначально обращаются к интернету, ошибка 504 может отображаться в небольшом диалоговом окне или окне с ошибкой HTTP_STATUS_GATEWAY_TIMEOUT и/или сообщение The request was timed out waiting for a gateway (истекло время ожидания запроса для шлюза ).

Менее распространенная ошибка 504 — это Gateway Time-out: The proxy server did not receive a timely response from the upstream server (прокси-сервер не получил своевременного ответа от вышестоящего сервера ), но поиск и устранение неисправностей (указанных выше ) продолжается.