Блог

Что такое ошибка 502 Bad Gateway и как ее исправить

Запрос от пользователя к файлам сайта последовательно проходит через несколько условных «шлюзов»: браузер, DNS-кэш и DNS-серверы, CDN-, веб-серверы и т. д. Ошибка 502 Bad Gateway выдается, когда одно из звеньев этой цепи работает некорректно или не работает вообще.

Чаще всего причина — в перегруженности сервера, на котором расположен сайт. Ему не хватает мощностей, чтобы обработать запросы. Такое может произойти из-за:

  • DDos-атаки. Злоумышленники создают поток «пустых» запросов, которые перегружают сервер.
  • Резкого всплеска посещаемости сайта. У вас есть некая средняя посещаемость, под которую вы зарезервировали определенный объем ресурсов сервера. Но в праздники, дни распродаж, после каких-то рекламных активностей это число может резко вырасти, и сервер перестанет справляться с нагрузкой.
  • Действий у соседей по виртуальному хостингу. На виртуальном хостинге нет фиксированных только под вас мощностей, фактически вы делите их с другими арендаторами. Если у кого-то из них сейчас форс-мажор: та же DDos-атака или пиковая посещаемость, они «перетянут на себя одеяло» и займут максимально доступную часть ресурсов. В том числе ваших. Это будет продолжаться до тех пор, пока хостинг-провайдер не обнаружит нарушителя.
  • Неоптимизированного сайта. Настройки, логика обработки запросов могут быть такими, что даже небольшое число посетителей генерирует множество запросов. Как только посещаемость вырастает – нагрузка на сервер становится непомерной.
  • Слабой производительности вашего тарифного плана. Возможно, вы изначально взяли слишком мало ресурсов или же ваш сайт уже слишком большой для старого тарифа.

Ошибка 502 Bad Gateway может быть связана с некорректной работой PHP-скриптов и плагинов. Иногда проблема возникает в работе MySQL или службы Memcached.

Действия администратора сайта при ошибке 502

Ошибка 502 Bad Gateway сравнительно неплохо диагностируется: есть множество способов найти и устранить ее причину. Если сайт расположен на виртуальном хостинге, инструментов не так много (журнал ошибок, проверка плагинов). Лучше всего обратиться к хостинг-провайдеру.

У владельцев VPS/VDS и «дедиков» возможностей для диагностики больше.

Посмотрите информацию на странице ошибки

Иногда там могут быть указаны полезные сведения – на каком этапе произошел сбой.

К примеру, если в ошибке есть сообщение о cloudflare-nginx, то обрыв соединения произошел на серверах Cloudflare – популярного поставщика CDN-услуг. Обратитесь в их техподдержку.

Проверьте доступность проблемной страницы с помощью сервисов

Чтобы убедиться, что проблема не локальная, проверьте, виден ли ваш сайт другим пользователям. Для этого можно использовать специальные сервисы, например, https://2ip.ru/site-availability/. Если проверка показывает, что сайт действительно недоступен, переходите к следующим шагам.

Проверьте журнал ошибок и логи сервера

Вы можете посмотреть журнал ошибок вашей CMS. В WordPress журнал расположен в папке wp-content, файл называется debug.log. Если такого файла нет или он пустой – нужно включить запись логов в конфигурационном файле wp-config.php.

Если у вас VPS/VDS или выделенный сервер, дополнительно посмотрите логи сервера. По ним можно определить:

  • вызвана ли проблема 502 Bad Gateway каким-то из последних обновлений на сервере;
  • подозрительную активность с некоторых IP-адресов;
  • признаки DDoS-атаки (массовые однотипные запросы к службам и портам);
  • отсутствие соединения между вашими серверами, например, Nginx и Apache и т. д.

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

  • забанить IP-адреса, с которых идет подозрительный трафик. Можно даже установить специальное ПО, которое будет автоматически банить IP на основании заранее установленных вами правил (тот же Fail2ban);
  • установить системы защиты от DDos-атак;
  • откатить обновления, которые вызвали ошибку, или внести нужные коррективы для их нормальной работы;
  • перезапустить Apache-сервер, исправить настройки соединения между ним и Nginx и так далее.

Проверка плагинов CMS

Ошибку с кодом 502 Bad Gateway могут вызывать некорректно работающие плагины WordPress. Например, плагины кеширования.

Чтобы проверить, в этом ли причина, найдите папку с плагинами и переименуйте ее (можно дать любое имя). CMS перестанет использовать плагины. Если ошибка после этого исчезнет – проблема в них. Включите плагины снова (верните папке прежнее имя) и отключайте последовательно каждый, чтобы определить «виновника».

Проверка командой top

Исправление ошибки 502 на виртуальном сервере можно начать с проверки командой top (на виртуальном хостинге такая возможность чаще всего недоступна).

Проверка может выявить, что:

  • серверу не хватает памяти. Об этом будет говорить аббревиатура OOM (out of memory) в результатах или же в параметре Mem – free (свободная память) будет указано слишком маленькое число.
  • если ошибка 502 Bad Gateway с причиной нехватки памяти в последнее время происходит все чаще, возможно, посещаемость вашего сайта выросла, и вам нужно перейти на другой тариф или увеличить объем оперативной памяти на вашем выделенном сервере.
  • лимитов php-cgi процессов не хватает для обработки запросов всех пользователей. Возможно, установлены слишком маленькие лимиты. Попробуйте их увеличить в конфигурационном файле httpd.conf.

Действия пользователя при ошибке 502

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

  • Подождите 2-3 минуты и перезагрузите страницу. Возможно это какой-то временный сбой на маршруте соединения с сайтом, и сейчас все придет в норму.
  • Откройте другой сайт. Если он также выдает ошибку 502 Bad Gateway, то скорее всего проблема на вашей стороне.
  • Проверьте настройки и статус сетевого подключения. Нет ли сообщений «сетевой кабель не подключен» или «без доступа к интернету». Перезагрузите роутер.
  • Откройте страницу в другом браузере. Если, скажем, в Chrome страница открывается нормально, а в Opera появляется ошибка – ищите проблему в Opera.
  • Откройте страницу в режиме «инкогнито». В этом режиме не работают никакие установленные у вас аддоны и расширения к браузеру. Страница открылась без ошибки? Значит, проблема в них. Отключайте их по отдельности, проверяя, не исчезла ли ошибка. В первую очередь обратите внимание на VPN-расширения и ad-блокировщики.
  • Почистите кэш и куки. Накопившиеся старые данные могут мешать соединению.
  • Почистите кэш DNS. В кэше вашего компьютера могут храниться устаревшие «связки» IP-адреса сайта и его URL. Сброс DNS кэша позволит загрузить с серверов обновленные данные, и сайт станет доступен. Для сброса в Windows наберите в cmd команду ipconfig /flushdns и подождите, пока появится сообщение об успешном завершении очистки.

Обратитесь в техподдержку

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

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

Автор

evkcrb@yandex.ru

Добавить комментарий