502 Bad gateway nginx что это значит как исправить?

16 ответов на вопрос “502 Bad gateway nginx что это значит как исправить?”

  1. хочу звездочку с неба Ответить


    Если эта ошибка возникает, значит HTTP-запросы от клиентов до Вашего сайта идут через какой-то шлюз. Например, если на хостинге перед веб-сервером Apache стоит веб-сервер nginx, то nginx будет шлюзом.
    502-ая ошибка означает, что запрос от клиента прошел nginx, попал к Apache, и Apache не смог запрос обработать, о чем сообщил nginx’у. В результате nginx отдает клиенту ошибку.
    Причина появления ошибки 502 Bad Gateway:
    Время ожидания серверного программного обеспечения. 502 ошибка неизбежна при снижении скорости выполнения запросов в nginx, когда средство кэширования (например, Varnish Cache) уходит в таймаут. Сюда же относятся и медленные запросы;
    Перегруженность сервера. Веб-сервер может падать из-за нехватки ресурсов (например, оперативной памяти, недостаточная скорость процессора или диска ), вызываемой избытком выполняемых процессов или агрессивными действиями пользователей;
    Плохой код сайта. Сайты с устаревшими CMS, плагинами или корявым кодом влияют на правильное функционирование сервера и ведут к периодическому возникновению 502 ошибки;
    Ошибки сети. Прочие ошибки конфигурации сети (проблемы с DNS, маршрутизация, блокировка файерволом, используемым на сервере, проблемы у провайдера) также становятся причиной появления 502 ошибки сервера;
    Частая перезагрузка веб-сервера. Такое случается при ошибках конфигурации, сбоях в модулях, любых атаках, избытке выполняемых процессов и приложений. В результате пользователь видит временную 502 ошибку;
    Загрузка файлов большого размера на сервер при плохом качестве Интернет-соединения;
    Вот несколько советов, как исправить ошибку 502 bad gateway:
    Следите за тем, чтобы файлы сайта (плагины и темы) своевременно обновлялись и не устаревали;
    Проводите аудит серверного программного обеспечения и вовремя обновляйте модули;
    Избегайте проблем с маршрутизацией и отслеживайте любые перегрузки/атаки на сервер;
    Оптимизируйте и исправляйте медленные MySQL-запросы;
    Отключите скрипты мониторинга и отслеживания посетителей на сайте, потому что каждое движение Ваших клиентов на сайте выполняет запрос к базе данных;
    Отключите все внутренние статистики на сайте – например, используйте http://www.google.com/analytics;
    Вы можете войти в phpMyAdmin и проверить в каких таблицах находится больше всего записей. После этого, если Вы видите, что определенная таблица не содержит ценной информации, а содержит просто логи, статистику, кеш, то Вы можете очистить или удалить её.

  2. Agarin Ответить

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

  3. ALDEBARAN Ответить

    Для обычного хостинга

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

    Для арендованного сервера

    Если вы арендуете сервер, то скорее всего вашему сайту не хватает мощности сервера (памяти\ресурса процессора), либо дело в настройках оборудования. В любом случае обратитесь в тех. поддержку хостинг-провайдера для выяснения причин. Для более продвинутых пользователей мы советуем обратить внимание на файл конфигурации Apache – httpd.conf, и в частности на секции mod_fastcgid и mod_fascgi. Здесь как правило устанавливаются лимиты на php-cgi процессы, и следовательно их изменение в большую сторону может наладить корректную работу сервера.

  4. Sharpbearer Ответить

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

  5. Mulabar Ответить

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

    Проблемы со стороны веб-сервиса

    Ошибка 502 Bad Gateway может появляться при использовании виртуальных хостингов и арендованных серверов. К самым распространенным неисправностям можно отнести следующие:
    Перегруженность серверов. Случается в тех ситуациях, когда количество заходов на сайт превышает допустимое значение. При росте популярности портала потребуется смена хостинга на более надежный.
    Разрыв связи между серверами. Например, если сервер-источник nginx находится на одном сервисе, а обратный прокси-сервер (Apache/PHP-FPM и прочее) на другом. Необходимо проверить пинг и убедиться в стабильности соединения.
    Большой код, огромное количество плагинов и надстроек. Эта причина характерна для WordPress или других виртуальных хостингов.
    Плохой код сайта и оптимизация.
    Во всех случаях проблему нужно решать индивидуально после анализа поведения сайта и серверов. Рекомендуется связаться с поддержкой хостинг-провайдера для прояснения ситуации, если исправить проблему самостоятельно не получается.

    Видеоинструкция

    Обязательно ознакомьтесь с представленным роликом. В нем наглядно разбираются все способы решения проблемы.

  6. Mister_Wives Ответить

    Есть приложение, которое по запросу пользователя открывает в новом окне некий текст. Пробовала его запускать на одном сервере (на нем стоит только Apache), все проходит нормально, текст выгружается. При попытке запустить его на другом (стоит связка nginx + Apache) выходит ошибка 502 Bad Gateway.
    В логах значится, что она выходит из-за этого WSARecv() failed (10054: Удаленный хост принудительно разорвал существующее подключение). Подскажите, пожалуйста, чем она может быть вызвана? что nginx так не нравится???
    Лог nginx:
    2016/02/18 12:12:39 [debug] 9380#8020: select event: fd:364 wr:0
    2016/02/18 12:12:39 [debug] 9380#8020: select timer: 500
    2016/02/18 12:12:40 [debug] 9380#8020: select ready 1
    2016/02/18 12:12:40 [debug] 9380#8020: select read 364
    2016/02/18 12:12:40 [debug] 9380#8020: *222 post event 00910CB0
    2016/02/18 12:12:40 [debug] 9380#8020: timer delta: 453
    2016/02/18 12:12:40 [debug] 9380#8020: posted event 00910CB0
    2016/02/18 12:12:40 [debug] 9380#8020: *222 delete posted event 00910CB0
    2016/02/18 12:12:40 [debug] 9380#8020: *222 http upstream request: “/site/config/get_text.php?prescript_id=755”
    2016/02/18 12:12:40 [debug] 9380#8020: *222 http upstream process header
    2016/02/18 12:12:40 [debug] 9380#8020: *222 malloc: 00962008:4096
    2016/02/18 12:12:40 [debug] 9380#8020: *222 WSARecv: fd:364 rc:-1 0 of 4096
    2016/02/18 12:12:40 [error] 9380#8020: *222 WSARecv() failed (10054: Удаленный хост принудительно разорвал существующее подключение) while reading response header from upstream, client: 85.113.60.113, server: server_name.ru, request: “GET /site/config/get_text.php?prescript_id=755 HTTP/1.1”, upstream: “http://127.0.0.1:80/site/config/get_text.php?prescript_id=755”, host: “server_name.ru”, referrer: “http://server_name.ru/site/site.php”
    Настройки nginx:
    worker_processes 1;
    error_log logs/error.log;
    events {
    worker_connections 1024;
    }
    http {
    include mime.types;
    default_type application/octet-stream;
    #17.02.2016
    client_max_body_size 10m;
    client_body_timeout 6m;
    client_header_timeout 6m;
    send_timeout 6m;
    sendfile on;
    keepalive_timeout 65;
    gzip on;
    server {
    listen 10.0.0.4:80;
    server_name server_name.ru;
    #charset koi8-r;
    location ~ \.(png|gif|jpg|jpeg|ico|css|js|txt|wsdl)(\?\w+)?$ {
    root c:/vhost/server_name.ru.ru/web;
    index index.php;
    }
    location / {
    proxy_connect_timeout 600;
    proxy_read_timeout 600;
    #17.02.2016
    proxy_send_timeout 600;
    #17.02.2016
    proxy_pass http://127.0.0.1:80;
    proxy_set_header Host $host;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
    }

  7. Mary Moon Ответить

    Ошибка 502 Bad Gateway означает, что Nginx не может получить ответ от какого-то сервиса. Gateway означает, что ошибка произошла не внутри самого сервера, а где-то на уровне связи между ним и другой программой.

    Что это значит?

    Часто Nginx работает в паре с каким-либо другим приложением:
    В паре с Apache и используется, как прокси сервер.
    Вместе с PHP-FPM для обработки PHP запросов.
    Вместе с другим сервисом (например, Varnish либо Memcache).

    Причины ошибки Nginx 502

    Наиболее частые причины возникновения ошибки bad gateway:
    Какой-то из сервисов просто выключен. Необходимо перезапустить Apache, PHP-FPM либо другой сервис, с которым работает Nginx.
    Какой-то из сервисов недоступен по сети. Если Nginx находится на одном сервере, а PHP-FPM или Apache на другом, то ошибка 502 может возникнуть, если между серверами нет связи. Сделайте ping и убедитесь, что проблемы нет.

    PHP-FPM

    Для PHP-FPM также ошибка 502 Bad Gateway может возникнуть в случае, если используется сокет и к нему нет доступа:
    [crit] 2963#0: *138 connect() to unix:/tmp/php5-fpm.sock failed (13: Permission denied) while connecting to upstream
    В этом случае, убедитесь, что php-fpm сокет создается с нужными правами. В файле настроек fpm (/etc/php-fpm.d/www.conf):
    listen = /tmp/php5-fpm.sock
    listen.owner = www-data
    listen.group = www-data
    #nginx
    #ошибки
    ID: 178

  8. TpaKToPuc Ответить

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

    502 ошибка Bad Gateway может проявляться по-разному. К примеру, 502 – Service Temporarily Overloaded или HTTP Error 502 – Bad Gateway.

    Что вызывает 502 ошибку сервера

    Ошибка 502 говорит о том, что обратный прокси-сервер (допустим, Apache) для сервера источника (например, nginx) получает некорректный ответ от исходного веб-сервера.
    Посмотрев внимательнее, мы обнаружили, что Apache работает в нем как прокси nginx. Веб-сервер перезагружал http-сервис почти каждый час. Наш опыт в устранении подобных ошибок показывает, что ошибка 502 Bad Gateway появляется по одной из следующих причин:
    Перегруженность сервера. Веб-сервер может падать из-за нехватки ресурсов (например, оперативной памяти), вызываемой избытком выполняемых процессов или агрессивными действиями пользователей;
    Частая перезагрузка веб-сервера. Такое случается при ошибках конфигурации, сбоях в модулях, любых атаках, избытке выполняемых процессов и приложений. В результате пользователь видит временную 502 ошибку;
    Плохой код сайта. Сайты с устаревшими приложениями или корявым кодом влияют на правильное функционирование сервера и ведут к периодическому возникновению 502 ошибки;
    Ошибки сети. Прочие ошибки конфигурации сети (проблемы с DNS, маршрутизация, блокировка файерволом, используемым на сервере, проблемы у провайдера) также становятся причиной появления 502 ошибки сервера;
    Время ожидания серверного программного обеспечения. 502 ошибка неизбежна при снижении скорости выполнения запросов в nginx, когда средство кэширования (например, Varnish Cache) уходит в таймаут. Сюда же относятся и медленные запросы.

    Как исправить 502 серверную ошибку в nginx

    Сначала необходимо определить первопричину возникновения данной ошибки. Мы изучили серверные логи во время перезагрузок, и нашли там ошибки seg fault.
    Затем мы покопались в конфигурации сервера, и увидели, что там отсутствовал модуль mod_rpaf. Именно это и вызывало падение сервера:

  9. Remus TV Ответить

    Эта ошибка может отображаться на любом веб-сайте. И первым делом просто нажмите сочетание кнопок Ctrl + F5, чтобы обновить страницу.

    1. Изменить прокси-сервер по умолчанию

    Нажмите сочетание кнопок Win + R и введите inetcpl.cpl, чтобы открыть свойства интернета.

    Затем перейдите во вкладку “Подключения” > “Настройка сети” > поставьте флажок “Автоматическое определение параметров” и убедитесь что не включён “Использовать прокси-сервер для локальных подключений”.
    Нажмите “Применить” и “OK”. Если вы используете стороннюю прокси-службу, обязательно отключите ее.

    2. Сбросить DNS, сбросить Winsock и сбросить TCP/IP

    Иногда, веб сайты меняются и переезжают с сервера на сервер, а DNS на вашем ПК все еще помнит старый ip адрес вашего сайта, что приводит к 502 Bad Gateway ошибке.

  10. Bubandis Ответить

    Согласие на обработку персональных данных

    Настоящим Я, подтверждаю и даю свое добровольное согласие сайту неОшибка.Ру (адрес в интернете https://neoshibka.ru/ ) в соответствии со статьей 9 Федерального закона от 27 июля 2006 г. N 152-ФЗ «О персональных данных» на обработку и использование моих персональных данных, указанных в процессе регистрации, комментирования, или при заполнении любой другой контактной формы на настоящем сайте, с использованием средств автоматизации или без использования таких средств, включая сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (распространение, предоставление, доступ), обезличивание, блокирование, удаление, уничтожение персональных данных, с целью сбора статистики и улучшения сервисов предоставляемых сайтом. Обработка персональных данных осуществляется также в целях моего информационного оповещения (рассылки информации, при желании есть функция отказа от рассылки) и для проведения аналитики и статистики.
    Я ознакомлен(а), что:
    Настоящее согласие на обработку моих персональных данных, указанных при регистрации на Сайте, направляемых (заполненных) с использованием Cайта, действует в течение 20 (двадцати) лет с момента регистрации на Cайте;
    Cогласие может быть отозвано мною на основании письменного заявления в произвольной форме;
    Предоставление персональных данных третьих лиц без их согласия влечет ответственность в соответствии с действующим законодательством Российской Федерации.

  11. Dadar Ответить

    Значит вам нужно изменить свой тарифный план на хостинге, посоветовавшись с вашим хостером через поддержку, а если выяснится, что это максимум, что хостер может вам предложить, то бегите от него быстрее на другой, более мощный хостинг, например МакХост. Этот хостинг уже испытан временем и множеством веб-мастеров, которые очень им довольны, включая и меня. Не очень скромно, но это именно так!
    Это еще не все причины по которым может возникать ошибка 502 Bad Gateway — недопустимый шлюз. Сейчас мы с вами еще рассмотрим возможные причины ее появления.
    Кроме основной причины, описанной мной выше, есть еще типичные причины возникновения данной ошибки …

    Типичные причины появления ошибки 502

    Давайте выясним типичные причины нехватки ресурсов на сервере, которые приводят к тому, что появляется ошибка 502:
    Очень большое количество посетителей на вашем сайте одновременно.  И если ваш сервер не рассчитан на такое количество одновременных посетителей, использующих автоматизированные системы на нем (например поисковую автоматизированную систему на сайте), то это и есть причина появления 502 ошибки. Еще может быть причиной плагин, который использует много ресурсов для обработки данных с сервера.
    Следующая причина возникновения ошибки 502 — хакерская атака на сайт. следствием чего будет очень высокая нагрузка на сервер, что также выдает — ошибка 502  Bad Gateway.
    Также эта ошибка может возникать из-за неправильной конфигурации сервера или несовместимых программных и аппаратных решений на сервере (выяснить через техподдержку!).
    Загрузка на сервер больших и тяжелых файлов, с которыми он просто не в силах справиться из-за неустойчивого соединения или не хватки, опять же той самой, пресловутой мощности.
    Если ошибка 502 возникает на ровном месте, практически спонтанно, то это скорее всего, что ваш хостер разместил огромное количество аккаунтов клиентов. И это в свою очередь привело к оверселлингу — нехватка ресурсов сервера в пиковые моменты из-за большой нагрузки на него лишними аккаунтами, не рассчитанными на нагрузку данного сервера (косяк хостера!).
    Когда сайт использует внешнее подключение различных скриптов и т.д., то когда возникают проблемы у вашего источника подключения, соответственно эти проблемы и возникнут на вашем сайте, что приведет к появлению бага — ошибка 502 Bad Gateway.
    С причинами разобрались, теперь нам нужно узнать самое важное …

    Ошибка 502 Bad Gateway — Как исправить?

    Как и в возникновении причин ошибки 502, так и в ее устранении должен быть порядок! Поэтому я все расположил по пунктам:
    Первое, что вам нужно сделать при возникновении данной ошибки — это проанализировать ваш сервер. Узнайте нагрузку на него в текущий момент возникновения ошибки 502 или любых других ошибок (ошибка 301, ошибка 503). И при выяснении причины — высокая нагрузка на сервер из-за нехватки оперативной памяти, незамедлительно увеличьте ее, так как это самая важная составляющая работоспособности вашего сервера (посоветуйтесь с поддержкой хостинга!).
    При систематическом возникновении бага — ошибка 502, выясните правильность настроек лимитов на количество php-cgi процессов и их корректность на вашем сервере, опять же советуйтесь в своей поддержке хостинга!
    Если ваш сайт расположен на виртуальном хостинге и из-за этого есть причина думать, что возможно появление оверселлинга, смотрите выше в тексте, то подумайте о переносе своего сайта на более удобный и мощный хостинг, например МакХост. Только долго не думайте!
    Когда ошибка 502 возникает из-за высокого количества запросов к внешним ресурсам сети, постарайтесь снизить их количество и установите ограничение на время их ответа и загрузки, что в свое время значительно поможет вам отслеживать «тормоза» загрузки, так же поможет выявить проблему и автоматически ее обработать.
    На этом все, что я вам хотел сегодня поведать про баг — ошибка 502  Bad Gateway и о том, как исправить данную ошибку.
    Спасибо за внимание! И всем вам удачи и процветания!

  12. VideoAnswer Ответить

Добавить ответ

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