502 bad gateway nginx как исправить
Перейти к содержимому

502 bad gateway nginx как исправить

  • автор:

Что значит ошибка 502

Код ошибки 502 Bad Gateway в переводе с английского «плохой шлюз».

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

Например, внутри сервера часто используется связка Nginx + Apache. Веб-сервер Nginx получает запрос от пользователя и передает его на обработку Apache, если веб-сервер Apache по какой-то причине будет недоступен, то Nginx выдаст пользователю ошибку 502.

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

​​Страница ошибки 502

Сам клиент не сможет исправить данную ошибку, сделать это сможет только администратор сервера.

Как исправить ошибку 502 Bad Gateway:

  • Проверить плагины — некоторые из них могут нарушать работу сервера
  • Проверить логи сервера, возможно проблема возникла из-за обновлений. Также в логах отображаются DDos-атаки
  • Настроить оборудование арендованного сервера
  • Увеличить мощность сервера арендованного сервера
  • Оптимизировать работу сайтов, что снизит нагрузку на сервер.

На нашем сайте Вы можете купить хостинг в России.

МИР Visa MasterCard СБП QIWI Wallet Безналичный платеж

Все способы

© 2009–2024 «HANDYHOST.RU» 8-800-505-68-01

  • Услуги
  • Хостинг сайтов
  • Домены
  • Конструктор сайтов
  • Linux VPS / Windows VPS
  • Выделенные серверы
  • SSL сертификаты
  • Клиентам
  • Контакты
  • О компании
  • Акции
  • Оборудование
  • Партнерская программа
  • Поддержка
  • Способы оплаты
  • Регламент
  • Документы
  • Справка

Nginx: 502 Bad Gateway — Пять причин и решений

502 Bad Gateway обычно возникает, когда Nginx работает, как обратный прокси-сервер и не может подключиться к серверным службам. Это может быть связано со сбоем службы, сетевыми ошибками, проблемами конфигурации и т.д. Рассмотрим пять основных причин возникновения этой ошибки и то, как их исправить.

Поддерживать сервер сложно.

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

Одной из таких распространённых ошибок на серверах Nginx является 502 Bad Gateway .

Nginx Ошибка 502 Bad Gateway

html-код сообщения об ошибке 502 Bad Gateway сервера nginx:

html> head>title>502 bad gatewaytitle>head> body> center>h1>502 bad gatewayh1>center> hr>center>nginxcenter> body> html>

Сообщение об ошибке загадочно.

Итак, многие веб-мастера засучивают рукава и смотрят error.log :

2017/04/04 08:34:43 [error] 949#949: *7 connect() failed (111: Connection refused) while connecting to upstream, client: XXX.XXX.XXX.XXX, server: myserver.com, request: "GET /myurl-this/ HTTP/1.0", subrequest: "/redis-fetch", upstream: "redis://127.0.0.1:6379", host: "refserver.com", referrer: "http://referalsite.com/myurl-this/"

Да, ещё больше непонятного…

Вы понимаете, что что-то напутано, потому что он сообщает failed (сбой) и refused (отказ).

Но что это означает?

Вот решение. Мы перечислили пять основных причин возникновения ошибки Nginx 502 Bad Gateway и способы их решения.

Сбой серверной службы

Nginx зависит от серверных служб, таких как PHP-FPM, служб баз данных и серверов кэша для запуска веб-приложений.

Таким образом, если какой-либо из этих сервисов выйдет из строя или зависнет, Nginx не получит никаких данных, что приведёт к ошибке 502 Bad Gateway .

Службы, которые, как мы видели, сбоили — это:

Причины сбоя службы могут варьироваться от всплесков трафика и ограничений ресурсов до ошибок диска и DDoS-атак.

Если вы подозреваете, что серверная служба не отвечает или вышла из строя, попробуйте завершить все не отвечающие процессы и перезапустить службу.

Например, вот один из способов убить нефункционирующие процессы PHP-FPM и перезапустить службу.

$ kill -9 $(pgrep php-fpm) 
$ /etc/init.d/php-fpm restart
* Restarting PHP FastCGI Process Manager php-fpm [ OK ]

Внимание: Не запускайте эти команды, если не знаете, как они работают.

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

Высокая нагрузка на сервер

Вторая наиболее распространённая причина ошибки Nginx 502 Bad Gateway является высокая средняя загрузка серверов.

Всплески нагрузки приводят к тому, что службы не отвечают. Мы видели следующие причины скачков нагрузки:

  • Внезапный всплеск посещаемости сайта (может быть сезонным или маркетинговым/рекламным).
  • Заражение вредоносным программным обеспечением (вирусы/трояны/майнеры/сканеры и т.д.) на сервере.
  • Рассылка спама в комментариях или использование других уязвимостей.
  • Брут форс атаки на веб-приложения.
  • Ошибки приложений, вызывающие утечку памяти или перегрузку ресурсов.

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

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

Неправильная конфигурация сервиса

Сервер Nginx и серверные службы зависят от многих подсистем. Таких, как DNS resolver, процессы Apache, службы PHP, сервер базы данных и т.д. Если даже одна из этих служб имеет неправильную конфигурацию, эта служба не сможет ответить, и Nginx покажет ошибку 502 Bad Gateway .

Проблемы с конфигурацией, с которой мы сталкивались:

  • DNS resolver неправильно настроен в Nginx, что приводит к сбою поиска домена.
  • Данные логина БД настроены неправильно после недавней миграции, восстановления или обновления.
  • Синтаксическая ошибка настроек брандмауэра Apache (mod-security), вызывающая сбой Apache.
  • Для приложений PHP установлены неправильные ограничения памяти или файлов.
  • Ограничения пропускной способности (например, количество подключений на IP-адрес) установлены слишком строго, что приводит к сбою легальных посетителей.
  • …и многое другое.

Не существует простого способа обнаружения ошибки конфигурации. Вам нужно просмотреть error.log и обратить внимание на то, что написано об ошибке.

Например, эта ошибка сообщает, что приложение PHP достигло максимально допустимого предела процессов (определяемого параметром pm.max_children ).

WARNING: [mysite.com] server reached max_children setting (30), consider raising it 
ERROR: unable to read what child say: Bad file descriptor (9)

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

Порт сервиса заблокирован в брандмауэре

Брандмауэры/файрволлы — основа безопасности сервера. Но если их неправильно настроить, это может привести к блокировке запросов или сбою служб.

Например, на серверах Linux, на которых работает пакет автоматизации Plesk, Nginx работает на 80 порту, а Apache на 7080. Но брандмауэры/файрволлы по умолчанию блокируют необычные порты, и это приведёт к том, что Nginx не сможет подключиться к Apache.

Результат? Ошибка 502 Bad Gateway.

Такие проблемы часто возникают при включении новой службы (например, кэширующий сервис, Ruby, и т.д.) в бэкенде, во время миграции или после обновления сервера.

Чтобы исправить это, мы смотрим, на каком порту работает каждая служба с помощью следующей команды:

$ netstat -lpn 
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19785/nginx
tcp6 0 0 . 80 . * LISTEN 19785/nginx

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

Ошибки веб-приложений

Редким случаем ошибки 502 Bad Gateway является ошибка приложения.

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

[notice] child pid 27831 exit signal Segmentation fault (11)

Вам нужно будет проверить требования вашего приложения и настроить службы, чтобы они соответствовали требуемым версиям.

Итог

Ошибка 502 Bad Gateway в Nginx обычно возникает, когда Nginx работает как обратный прокси и не может подключиться к серверным службам. Это может быть связано со сбоями службы, сетевыми ошибками, проблемами конфигурации и т.д. Мы рассмотрели пять основных причин этой ошибки и способы её устранения.

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

502 ошибка

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

консоль

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

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

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

502 bad gateway nginx как исправить

Ошибка 502 Bad Gateway возникает, когда сервер, к которому вы подключены, выступает в роли посредника, передающего информацию от другого сервера, и получает некорректный ответ. 502 — это код состояния HTTP, который использует сервер для описания ошибки.

Некорректные ответы могут поступать нескольким причинам.

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

Сообщение об ошибке 502 выглядит по-разному на каждом сайте, и ее название тоже иногда различается. Например:

  • HTTP Error 502 Bad Gateway;
  • HTTP 502;
  • 502 Service Temporarily Overloaded;
  • Temporary Error (502);
  • 502 Server Error: The server encountered a temporary error and could not complete your request;
  • 502 Bad Gateway Nginx.

В большинстве случаев ошибка происходит на стороне сервера, и вы никак не можете ее исправить. Тем не менее есть несколько способов.

Обновите страницу

Ошибка 502 часто бывает временной, поэтому достаточно просто обновить страницу. В большинстве браузеров сделать это можно с помощью клавиш Ctrl+R (Windows) или Cmd+R (Mac), а также с помощью кнопки «‎Обновить»‎, расположенной в адресной строке. Этот способ не всегда решает проблему, но попытка займет всего пару секунд.

Проверьте, работает ли сайт у других пользователей

Если вы не смогли получить доступ к сайту (по любой причине), можно проверить, столкнулись ли с такой проблемой другие люди. Для этого есть множество инструментов, например isitdownrightnow.com и downforeveryoneorjustme.com. Оба работают примерно одинаково: вводите адрес сайта, который нужно проверить, и получаете небольшой отчет.

Обучись востребованной и перспективной профессии, выбрав онлайн-курс в каталоге курсов интернет-маркетинга.

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

Перейдите в другой браузер

Проблема, вызвавшая ошибку 502 Bad Gateway, может быть связана с браузером. Как это проверить? Просто воспользуйтесь другой программой — Google Chrome, Mozilla Firefox, Apple Safari или Microsoft Edge. Если ошибка не исчезла, значит, стоит попробовать другое решение.

Очистите кэш и файлы cookie в браузере

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

Чтобы это исправить, можно удалить кэш и файлы cookie и снова попытаться запустить сайт.

Проверьте плагины и расширения

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

Перезапустите устройства

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

Измените DNS-сервер

Иногда ошибку 502 вызывают проблемы с DNS-сервером. Можно попробовать его изменить — это не сложно. Как правило, DNS-сервер устанавливается интернет-провайдером. Вы можете изменить его на сторонний DNS-сервер, например OpenDNS или Google DNS.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *