Ошибка 502 (ERROR 502 Bad Gateway) — это сбой, который свидетельствует о получении некорректного ответа от вышестоящего по иерархии сервера. Простыми словами это получение неправильного ответа, приводящего к невозможности загрузить контент страницы.
Важно: сбой Bad Gateway может появляться как на определенной странице сайта, так и сразу на всех. Но наиболее часто встречается именно первый случай.
Чаще всего возникает по вине хостинга, DNS или прокси-сервера. Логика появления ошибки следующая: файлы публичного веб-сайта всегда располагаются на сервере. Пользовательский клиент (чаще всего, браузер) делает соответствующий запрос, чтобы получить данные из физического сервера и вывести их на пользовательском компьютере. Когда отправить файлы не получается — выводится ошибка с кодом от 500-й до 511-й.
Сам текст ошибки 502 может различаться. Часто встречаются варианты 502 Server Error, Bad Gateway, Temporary Error, HTTP 502 и другие.
Как исправить ошибку 502 вебмастеру: пошаговый алгоритм
Рассмотрим возможные причины и разберем алгоритм исправления источника ошибки.
Недостаток вычислительных ресурсов. Тарифный план хостинга
Если у вас жесткое ограничение производительности на выбранном тарифном плане хостинга, ошибка Bad Gateway может появляться при попытке открыть любую страницу сайта. Особенно часто эта причина встречается при использовании VPS на начальных тарифах.
Что делать?
- Проверьте статическую нагрузку, текущий размер оперативной памяти и размер хранилища для файлов сайта на используемом хостинге.
- Проверьте оперативную память сервера. Чтобы проверить текущий объем оперативной памяти, запустите командую строку сервера, затем укажите команды free -m (либо команду tor).
Недостаток производительности хостинга особенно часто проявляется при аномально высокой посещаемости.
Обратите внимание на параметры total (общий объем памяти), free (свободный объем памяти в данный момент), used (использующийся объем памяти в данный момент).
Если вы видите, что свободной памяти еще много, то причину ошибки нужно искать в другом.
Увеличение лимитов FastCGI
HTTP-сервер Apache настраивается путем размещения директив в текстовых файлах конфигурации. Основной файл конфигурации обычно называется httpd.conf. Его расположение устанавливается во время компиляции, но может быть переопределено флагом командной строки -f.
Проект HTTP-сервера Apache, широко известный как Apache HTTPD или Apache, представляет собой HTTP-сервер с открытым исходным кодом, на котором работает большая часть веб-приложений. Apache HTTPD является кроссплатформенным и может работать в системах на базе Unix и Windows.
Что делать?
- Найдите и отредактируйте файл httpd.conf.
- Измените установленное значение для FastCGI.
- Увеличьте его на 500-600 пунктов.
Обратите внимание: директива клиент-серверного протокола FastCG в конфигурационном файле обозначается как mod_fastcgi:
Глобальные изменения на сайте: обновления, установка плагинов, изменение дизайна или структуры URL
Чтобы диагностировать эту причину, необходимо проверить логи сервера. Кстати, в логах вы также сможете обнаружить и нехватку памяти сервера: такая ошибка называется OOM.
Что делать?
- Найдите файл с логами. Обычно кнопка с доступом к логам сервера есть в административной панели. Самое частое название такого файла — access.log. Если вы не нашли его — напишите в саппорт хостинга. Уточните, что серверные логи нужны вам для решения ошибки.
- Проанализируйте файл с ошибками. Логи сервера с ошибками обычно по умолчанию отправляются в файл error.log
- Ищите значение OOM или другие ошибки. Обязательно обращайте внимание на директиву %s со значением 502 (это и есть код состояния искомой нами ошибки).
Директивы в формате combined выглядят так:
- %s — код состояния HTTP.
- %h — IP-адрес запроса.
- %{User-Agent} — HTTP-заголовок.
- %l — полное название хоста.
- %b — отданные байты.
- %u — пользователь.
- %r — тип и содержимое запроса.
- %t — время запроса.
Cloudflare
Если вы настроили Cloudflare или похожее решение против хакерских атак, попробуйте отключить эту защиту. Часто Bad Gateway ошибка возникает по вине таких сервисов. То же самое можно сказать и о сторонних сетях доставки содержимого (СDN), с которыми соединен ваш сайт.
Что делать?
- Временно отключите Cloudflare.
- Временно отключите CDN (сеть доставки содержимого).
- Проверьте, стала ли доступна проблемная страница. Если да — настройте используемые внешние сервисы так, чтобы они не ограничивали доступ к странице.
Важно: отключение вашего сайта от любых сервисов, которые перенаправляет ваш трафик на собственные сервера (например, тот же CloudFlare) произойдет не сразу, а только через 5-6 часов или даже дольше, так как должно произойти обновление записей DNS.
Конфликт плагинов, проблемы после обновления CMS
Всегда запоминайте (а лучше — записывайте) все изменения, которые вы делаете на сайте. Будь то установка плагина, добавление нового функционала или изменение дизайна страницы. Так вы сможете просто диагностировать источник появления ошибки 502 и сразу перейти к его устранению. Например — удалить конфликтующий плагин через админку используемой CMS.
Откат к исправно работающей версии сайта может стать решением Bad Gateway в ряде случаев.
Как правило, хостинги автоматически создают резервные копии сайтов и баз данных своих пользователей один раз в сутки.
Что делать?
Показываем на на примере хостинга Beget:
- Чтобы откатиться к исправно работающей версии сайта, откройте раздел Backup в панели управления используемого хостинга.
- Чтобы выгрузить файлы (создать бэкап), выберите необходимые файлы, отметив чекбокс слева от них:
- Чтобы восстановить сайт из резервной копии, выберите копию (в Beget «Текущее состояние») и затем кликните по синей стрелке:
- Далее следуйте подсказкам хостинга, чтобы восстановить работоспособность сайта из бэкапа максимально корректно.
Вы можете настроить автоматическое копирование или бэкап по требованию.
Как исправить ошибку 502 пользователю: пошаговый алгоритм
Мы уже отмечали в начале, что источник Bad Gateway чаще всего находится на стороне сервера, поэтому пользователь устранить эту ошибку самостоятельно не сможет.
Но в редких случаях появление сбоя связано с проблемами, которые можно решить. Например, очисткой временных файлов сайта (поможет, если администратор вносил изменения в контент страницы и при этом на сайте настроено кэширование).
Чтобы устранить ошибку, выполните следующие действия:
- Напишите администратору сайта о возникшей проблеме.
- Попробуйте зайти на сайт в то время, когда поток пользователей небольшой (например, очень рано утром или ночью).
- Отключите все плагины / расширения в используемом браузере (в редких случаях они могут приводить к конфликтам). Подтвердить этот источник сбоя поможет просмотр проблемного сайта в режиме инкогнито.
- Очистите DNS-кэш в своей системе. Для этого нужно открыть встроенный в Windows инструмент cmd и прописать команду ipconfig /flushdns:
Все, DNS cache успешно очищен:
- Поменяйте используемый браузер. В очень редких случаях ошибка может появляться, когда сервер не в состоянии передать данные в конкретный браузер.
Резюме: самые частые причины появления ошибки
Итак, можно вывести четыре самых распространенных сценария появления Bad Gateway на сайте:
- Недостаток вычислительных ресурсов. Может проявляться на очень слабых, старых машинах.
- Глобальные изменения на сайте: обновления, установка плагинов, изменение дизайна или структуры ссылок.
- Конфликт плагинов. Проблемы после обновления версии CMS.
- Cloudflare и подобные сервисы + CDN (сеть доставки содержимого).
Найдите свою причину и устраните ее, следуя нашему алгоритму.
Комментарии