Ошибка 502 bad gateway, что это значит, как исправить своими силами?

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

  • Запустите команду top. Посмотрите, есть ли свободная память и запущен ли Apache.
  • Посмотрите логи Apache и nginx (ошибки 502 попадают в него). Есть паразитная активность? Если есть, баньте по ip, настраивайте Fail2ban, подключайте защиту от DdoS.
  • Если получилось ограничить количество запросов к серверу, перезапустите Apache.
  • Если в логах всё нормально, но мало свободной памяти, и есть возможность ее оперативно добавить, попробуйте это сделать. Сейчас у многих провайдеров это делается в биллинге буквально за пару минут.
  • Если же команда top показывает, что свободная память есть, возможно, дело в установленных лимитах на количество php-cgi процессов. Нужно смотреть конфигурационные файлы Apache (httpd.conf), особенно секцию модуля, отвечающего за FastCGI (mod_fascgi или mod_fastcgid), и увеличивать лимиты.

Если дело в нехватке памяти, то в логах будут ошибки 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 может быть написано:

[core:notice] [pid 5795] AH00052: child pid 5858 exit signal Segmentation fault (11) [mpm_prefork:notice] [pid 5795] AH00169: caught SIGTERM, shutting down

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

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

Ошибка 502 nginx чаще всего выводится потому, что бэкенд упал. Устранить ее можно выяснив куда проксируются запросы и восстановив работу второго ключевого сервиса.

Просматриваем файл и выясняем куда Nginx должен направлять запросы

less /etc/nginx/sites-enabled/SITENAME

Затем пробуем перезапустить этот сервис. Для самых распространенных бэкендов:

Apache

/etc/init.d/apache2 restart

PHP-FPM

/etc/init.d/php-fpm restart

Если возникают ошибки стоит смотреть логи соответствующего сервиса и искать ошибку в конфигурации.

Она там будет только в случае если конфиги редактировались. Самая частая причина 502 nginx в возникшей по какой-то причине нагрузки, которую бэкенд не смог обработать и экстренно завершил свою работу.

Простой перезапуск для этого случая решит вопрос

Бэкенд может быть вынесен на другую серверную машину — это также можно выяснить изучив конфиг Nginx. Процесс устранения ошибки будет отличаться только тем, что запускать службы потребуется предварительно подключившись к нужному серверу по SSH.

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

image

Иногда, путешествуя по просторам Интернет и зайдя на тот или иной сайт, Вы можете увидеть там не нужную информацию, а белый фон и на нём крупными буквами ошибка: 502 Bad Gateway. Что это значит? Ничего хорошего, на самом деле. Это сообщение выдаёт веб-сервер nginx при возникновении некоторых проблем в работе. Если Вы попытаетесь открыть другие страницы на этом же сайте по сохранённым ссылкам, то успехом это так же не увенчается. Что же делать? А это зависит от того — кем Вы являетесь для этого сайта. 

Если Вы простой посетитель, то решение одно — ждать пока администрация веб-ресурса починит сервис. Как долго? Сложно сказать. Если это крупный портал какой-нибудь компании, фирмы или гос.учереждения, то админ должен восстановить работу сайта в ближайшее время. Если же это личный блог какого-нибудь Васи Пупкина, то вполне вероятно что никто ничего чинить не будет, так как Вася про свой блог забыл и он ему не нужен. а) Если Вам очень нужна находящаяся на страничке информация, то либо попробуйте найти контакты администрации и связаться с ней по почте или через регистратора или хостера, либо воспользуйтесь веб-кешем поисковиков, введя ссылку на сайт или страничку в поисковую строку поисковика и открыв сохранённую копию. б) Очень часто ошибка Nginx 502 означает что интересующий веб-ресурс перегружен. Что делать? Опять же только ждать пока нагрузка уменьшится, периодически обновляя страничку в браузере. в) Если через какое то время на других компьютерах и иных устройствах (планшет, телефон, ноутбук) сайт открывается без проблем, а с Вашего всё равно отображается ошибка nginx, то нужно почистить кеш браузера.

image

Если Вы владелец или администратор сайта, который при попытке на него зайти выдаёт ошибку 502 Bad Gateway, то неисправность придется решать скорее всего Вам. Всё зависит от того, есть ли у Вас SSH-доступ к своему хостингу или нет. Если нет, то проблема автоматически ложится на плечи Вашего хостинг-провайдера — обратитесь в техническую поддержку с подробным описанием проблемы. Как правило, в этом случае решается всё довольно-таки оперативно, так как сайт обычно на сервере не один и заявки поступают от других клиентов тоже. Хуже, если Ваш сайт расположен на виртуальном (VPS) или выделенном (VDS) сервере. В этом случае, обычно, переложить проблему с больной головы на здоровую (читай: со своей на техподдержку хостера) не получится и придётся всё исправлять самостоятельно. Что делать? Для начала, попробуйте перезапустить сервер nginx. На CentOS, например, это делается командой:

service nginx restart

Если он у Вас используется, как фронт-энд для сервера Apache (httpd), то последний мог вылететь или повиснуть — перезапустите и его:

service httpd restart

Не помогло — посмотрите текущую загрузку сервера с помощью команды:

top -c

Особенно обратите внимание на значение параметра load average:

Он должен быть примерно равен количеству ядер процессора, ну плюс/минус 2. Если значение load average больше 10, то стоит бить тревогу — что-то сильно грузит процессор сервера. Часто за этим стоит направленная атака DDOS. Выясняйте причину — скорее всего её устранение вернёт Ваш сайт к нормальной жизни.

WordPress

Апр 01, 2021

Elena B.

4хв. читання

Ошибка 502 bad gateway — один из кодов ответа HTTP. Эта ошибка возникает не так часто, как 500 internal server error или 503 service unavailable error, но всё же может причинить некоторую головную боль.

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

Это руководство рассматривает причины и способы устранения ошибки 502 bad gateway.

Обратите внимание, что Hostinger предлагает специальный оптимизированный для WordPress хостинг. Воспользуйтесь предложением и получите WordPress хостинг со скидкой до 82%!

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

Так как ошибка 502 bad gateway обычно связана с проблемами на стороне сервера, она может возникать из-за неверной конфигурации или проблемы с клиентской стороны. Мы рассмотрим шаги поиска решения в обоих случаях. В то время как некоторые решения ориентированы на WordPress, большинство из них могут быть применены к любому сайту. Давайте приступим к шагам поиска причины и решению ошибки 502:

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

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

2. Очистите кэш браузера

Если проблема осталась, существует вероятность, что причиной является какой-то закэшированный элемент. Тогда очистка кэша браузера — это хороший способ устранить её.

3. Попробуйте другой браузер

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

4. Очистите кэш DNS

Ошибка 502 может возникать ещё и по причине, связанной с DNS, такой как неверное значение IP-адреса в кэше. В таком случае, сброс DNS кэша — это ещё одно решение, которое вы можете испробовать. Здесь руководство о том, как очистить кэш DNS на Windows, Mac и Linux.

Вы также можете временно переключить свой DNS-сервер по умолчанию на Google Public DNS.

Если вы недавно перенесли свой сайт WordPress на новый хостинг, помните, что полное распространение изменений может занять до 24 часов.

5. Проверьте на другом устройстве

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

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

Если ошибка 502 bad gateway возникла после конкретного изменения или обновления, возможно, что причина кроется внутри самого сайта. Наилучший вариант — проверить журнал ошибок (англ.), чтобы получить подсказки.

В WordPress, вы можете включить журналирование ошибок, добавив следующие строки в файл wp-config.php:

define( 'WP_DEBUG', true );  define( 'WP_DEBUG_LOG', true );  define( 'WP_DEBUG_DISPLAY', false );

Все созданные записи будут отображаться в файле wp-content/debug.log.

7. Проверьте плагины

Также важно проверить ваши плагины, темы и расширения. Проблемы с плагинами кэширования могут приводить к возникновению ошибки 502 bad gateway.

Если вы можете зайти в панель управления WordPress, перейдите в раздел «Плагины» и просто нажмите «Деактивировать» в меню «Действия».

Ещё один простой способ проверить, заключается ли проблема в плагине — ненадолго отключить их все, путём переименования каталога plugins, который находится в папкеwp-content.

Если вы используете Hostinger, войдите в свою панель управления hpanel и нажмите Файлы. Оттуда перейдите в Файловый менеджер -> public_html -> wp-content.

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

Если сайт по-прежнему не работает, выполните те же действия с темами WordPress.

8. Проверьте сети CDN

Иной причиной ошибки 502 bad gateway могут быть сети CDN или службы предотвращения DDoS. Одной из замечательных иллюстраций может быть CloudFlare, где ошибка 502 bad gateway бывает в двух разных вариантах, в зависимости от причины.

Эта страница указывает, что возникла проблема на стороне CloudFlare и для её устранения вам нужно обратиться в их службу поддержки. Но перед тем, вы можете легко проверить статус системы CloudFlare. Или же, как вариант, отключить CloudFlare самостоятельно, но имейте в виду, что обновление DNS может занять несколько часов.

Однако, если вы видите такой вариант ошибки, это значит, что ошибка на стороне вашего хостинг-провайдера.

9. Проверьте сайт

Если проблема так и не исчезла, стоит проверить, как видят ваш сайт другие. В интернете есть множество инструментов для проверки доступности сайта, но лучше всего использовать Down for Everyone or Just Me или IsItDown. Просто введите URL-адрес вашего ресурса и проверьте его статус.

10. PHP Timeout

Ошибка 502 bad gateway может возникнуть при попытке импортировать большое количество файлов WordPress. Такое может случиться, когда один процесс PHP длиться дольше, чем должен. Max_execution_time (max_input_time) — настраиваемое значение, которое находится в конфигурациях PHP на вашем сервере.

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

11. Свяжитесь со своим провайдером услуг хостинга

Если ничего из предложенного выше не помогло исправить ошибку 502 bad gateway, тогда лучше всего обратиться в службу поддержки. Описывая ситуацию, постарайтесь упомянуть все предпринятые вами действия по устранению. Предоставьте как можно больше информации и вам обязательно помогут!

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

Коды ответа HTTP, которые начинается с цифры “5” относятся к ошибкам связанным с утратой связи между серверами. Точная причина появления в большинстве случаем находится на стороне сервера.

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

Варианты ошибки 502

Ошибка 502 bad gateway может появляться в разных формах. Всё зависит от браузера, операционной системы или веб-сервера, которых существует большое количество. Вот несколько возможных вариантов:

  • Temporary Error (502)
  • 502 Error
  • Error 502
  • HTTP Error 502 Bad Gateway
  • 502 Server Error: The server encountered a temporary error and could not complete your request
  • 502 – Web server received an invalid response while acting as a gateway or proxy server
  • HTTP 502
  • 502 Proxy Error
  • Bad 502 Gateway
  • 502 Service Temporarily Overloaded
  • 502 Bad Gateway Nginx
  • 502. That’s an error
  • Пустой белый экран

Выводы

В этом руководстве мы изучили, что такое ошибка 502 bad gateway и какие существуют подходы к её решению.

Если у вас есть дополнительные подсказки, уловки или решения, смело делитесь ими с нами в комментариях ниже!

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

1Как правило, такое сообщение – следствие проблем в деятельности прокси-сервера, хостинг-сервера или DNS-сервера, на которых размещен сайт. Иными словами, ваш браузер получил неправильный ответ прокси-сервера и выдал вам общую ошибку “502 Bad Gateway”.

image

2Основные причины ошибки: резко возросшая нагрузка на сервере, которая спровоцировала нехватку ресурсов; ограничение конфигурации сервера. Порой, такая ошибка может возникать, если ваш сервер подвергается DDOS атаке.

image

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

image

4Если доступ в интернет есть, но ошибка 502 при обращении на конкретный сайт остается, можно попробовать удалить cookies. Если вы пользуетесь браузером Opera, заходите в меню “Инструменты” – “Удалить личные данные” – “Подробности”. Если вы пользуетесь, например, Fierefox, заходите в “Настройки”, выбираете “cookies” и далее: “Очистить cookies”.

image

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

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий