Запрос от пользователя к файлам сайта последовательно проходит через несколько условных «шлюзов»: браузер, 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 и подождите, пока появится сообщение об успешном завершении очистки.
Обратитесь в техподдержку
Если проблему не удалось решить своими силами, напишите или позвоните в техподдержку вашего хостинга. Во-первых, причины ошибки могут быть в каких-то настройках, которые доступны только им. Во-вторых, у специалистов провайдера гораздо больший опыт по части решения проблем с сервером.
При обращении обязательно укажите, что вы уже предприняли для диагностики и исправления. Это поможет быстрее установить причину.