Ошибка 502 при открытии сайта может появиться неожиданно. В этой статье мы расскажем, что значит код ошибки 502 и что может сделать пользователь и владелец сайта, чтобы её исправить.
Ошибка 502 Bad Gateway: что значит
Файлы любого сайта находятся на физическом сервере. Чтобы их получить и отобразить веб-ресурс на компьютере, браузер делает запрос на сервер. Если он по какой-либо причине не передал файлы, появляется ошибка 500-511.
Ошибка 502 Bad Gateway возникает при неправильной работе прокси-сервера, DNS-сервера и чаще всего сервера, на котором размещён сайт. Проблема может распространяться как на весь ресурс, так и на отдельные страницы. Это зависит от характера проблемы. Существуют разновидности 502 ошибки: Bad Gateway Nginx, Bad Gateway Apache. Об их отличиях мы расскажем ниже. Также эта ошибка может иметь формулировки:
- Bad Gateway: Registered endpoint failed to handle the request, Temporary Error (502),
- Error 502,
- Bad 502 Gateway,
- 502 Error,
- 502. That’s an error,
- 502 Service Temporarily Overloaded,
- 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,
- 502 Bad Gateway Nginx,
- 502 Proxy Error,
- HTTP 502,
- HTTP Error 502 Bad Gateway.
Что значит плохой шлюз: ошибка 502
Причины возникновения ошибки 502 Bad Gateway
-
Первая и основная причина ― перегрузка сервера. Перегрузка может быть вызвана несколькими проблемами:
- Большое количество посетителей одновременно. Веб-ресурс может посещать ограниченное количество посетителей. Сколько человек может посетить сайт зависит от возможностей сервера (размера оперативной памяти) и настроек, которые сделал создатель ресурса. Если по какой-либо причине на сайт зайдёт больше пользователей, чем запланировано, сервис может не справиться и страница выдаст код 502. Такое случается при рекламных акциях и распродажах в интернет-магазинах.
- Атака хакеров или DDoS-атака. Эта проблема связана с предыдущей причиной перегрузки. Хакер имитирует большой наплыв пользователей, из-за чего сервер выходит из строя. Такие атаки могут быть использованы для снижения продаж.
- Плохая оптимизация сайта. Настройки ресурса сделаны так, что маленькое количество посетителей генерирует много запросов. В этом случае нужно оптимизировать работу сервера с пользовательскими запросами.
- Второй причиной возникновения кода 502 могут явиться ошибки РНР. Если для расширения функционала сайта в панель управления были добавлены некорректно настроенные плагины, они могут выдавать проблемы в своей работе. Вместе с ними ошибку покажет и сайт целиком. Также если код сайта написан неправильно, запросы могут давать отрицательный результат.
- Ошибка браузера. Проблема может быть на стороне пользователя, если у него установлены расширения, которые нарушают соединение с сервером сайта.
Чем отличается ошибка 502 Bad Gateway Nginx
Между браузером и сервером может стоять веб-сервер. Он используется для снижения нагрузки на сервер, аутентификации пользователей и многого другого. Самые популярные программы для создания веб-сервера ― Nginx и Apache. Так как веб-сервер является посредником между браузером и сервером, то именно он будет оповещать пользователя о проблеме. Поэтому в зависимости от веб-сервера в сообщении вы можете увидеть надпись Bad Gateway Nginx или Bad Gateway Apache. При этом причины возникновения проблемы одинаковы.
Как исправить ошибку 502
Что делать, если вы пользователь
- Перезагрузите страницу, если проблема была вызвана наплывом посетителей. Возможно, через некоторое время посетители уйдут со страницы и вы сможете увидеть контент.
- Попробуйте зайти на другой веб-ресурс. Если вы можете зайти на другой сайт, значит проблема на стороне владельца ресурса и вы ничего не можете сделать. Вернитесь на страницу позже, когда администратор восстановит доступ.
- Проверьте подключение к интернету. Из-за низкой скорости или нестабильности соединения браузер может не получать данные с сервера.
- Запустите браузер в режиме «Инкогнито». В режиме «Инкогнито» браузер работает с базовыми настройками. Если вам удалось зайти на веб-ресурс в этом режиме, значит одно из ваших расширений браузера мешает соединению. Это расширение нужно отключить.
- Почистите файлы cookies. Если при повторном входе на сайт всё равно отображается ошибка 502, очистите кэш браузера. Возможно, доступ уже восстановлен, но ваш браузер обращается к старой версии страницы из кэша.
- Очистите кэш DNS. DNS-кэш — это временная база данных вашего компьютера, которая хранит записи обо всех последних посещениях и попытках посещений веб-сайтов и их IP-адресах. Кэш позволяет ускорить вход на часто посещаемые веб-ресурсы. Если у сайта изменились DNS, а данные из кэша отправляют на старый IP-адрес, в браузере появится код 502. После очистки браузер начнёт обращаться к новому IP-адресу.
Как очистить кэш DNS
В зависимости от вашей операционной системы очистите кэш по одной из инструкций.
- Откройте командную строку. Для этого введите в поисковую строку «Командная строка» и выберите появившееся приложение:
- Введите команду:
ipconfig /flushdns
- Дождитесь сообщения об очистке кэша:
- Откройте терминал клавишами Ctrl+Alt+T.
- Введите команду:
Для Ubuntu:
sudo service network-manager restart
Для других дистрибутивов:
sudo /etc/init.d/nscd restart
- Войдите в терминал. Для этого нажмите клавиши Command + Space. Введите Терминал и нажмите на найденное приложение.
- Введите команду:
sudo killall -HUP mDNSResponder
Готово, вы очистили кеш DNS. Попробуйте заново зайти на сайт.
Что делать, если вы владелец сайта
Проверьте количество свободной памяти. Это можно сделать двумя способами.
Способ 1 ― введите команду top
в командной строке сервера:
Mem ― вся оперативная память.
Swap ― раздел подкачки.
Посмотрите на строку Mem ― free. Это количество свободного места на сервере. Если там указано маленькое число, ошибка 502 Bad Gateway появляется из-за нехватки памяти. Увеличьте количество оперативной памяти и проблема пропадёт. Также в результатах можно будет увидеть, какую нагрузку на сервер даёт каждый отдельный процесс.
Способ 2 ― введите команду free -m
.
Mem ― вся оперативная память.
Swap ― раздел подкачки.
В строке Mem ― free показано свободное место на сервере. Если там маленькое число, увеличьте количество оперативной памяти.
Проверьте логи сервера. Если проблема возникла в момент каких-либо обновлений на сайте, проверьте журнал изменений, чтобы отменить те доработки, которые нарушили функциональность сервера. Также в логах можно увидеть DDos-атаку. Если дело в нехватке памяти, в логах отобразится ошибка OOM (out of memory).
Проверьте плагины в WordPress. Если ваш сайт создан на WordPress, некоторые плагины и темы могут нарушать работу сервера.
-
1.
Войдите в панель управления WordPress. Если вы пользуетесь услугой REG.Site, войти в панель управления CMS можно прямо из Личного кабинета.
-
2.
Перейдите во вкладку «Плагины» ― «Установленные».
-
3.
Нажмите Деактивировать у плагина, который, как вам кажется, повлиял на работу сайта:
Можно сразу отключить все плагины, чтобы убедиться, что один из них влияет на работу сервера. И далее по очереди включайте плагины, пока не найдёте конкретный плагин-виновник.
Проверьте, как работают вспомогательные службы, например MySQL и Memcached. Иногда они могут стать причиной 502 ошибки.
Свяжитесь со службой поддержки своего хостинг-провайдера. Если ничего из вышеперечисленного не помогло, обратитесь к службе поддержки и подробно опишите проблему и действия, которые вы предприняли до обращения. Действуйте по одной из инструкций ниже.
Сайт находится на виртуальном хостинге REG.RU
Если вы столкнулись с единичными случаями возникновения 502 ошибки, можете проигнорировать их.
Если код 502 возникает регулярно, напишите заявку в службу поддержки. В заявке укажите:
- Точное московское время наблюдения проблемы.
- Название сайта, на котором была замечена проблема.
- Если ошибка отображается не сразу, а после определённых действий (добавление изображения, отправка формы с сайта, импорт файлов), подробно опишите порядок действий, по которому мы сможем воспроизвести проблему.
- Если для воспроизведения проблемы необходимо авторизоваться в административной части сайта, предоставьте логин и пароль для доступа.
Сайт находится на VPS REG.RU
Чаще всего на VPS используется связка: Nginx + бэкенд-сервер (Apache, PHP-FPM, Gunicorn, NodeJS). Ошибка 502 возникает в случае, если Nginx не может получить ответ от этих сервисов.
Клиенты с VPS сталкиваются с «502 Bad Gateway», когда:
- какой-то из сервисов выключен. Перезапустите веб-сервер Apache, PHP-FPM либо другой сервис, с которым работает Nginx;
- между Nginx и бэкенд-сервером некорректно настроена связь. Например, Nginx производит обращение к порту 8080, а веб-сервер Apache «слушает» на 8081. В этом случае необходимо скорректировать настройки веб-сервера.
Если вам не удалось самостоятельно устранить ошибку 502, обратитесь в техподдержку. В заявке укажите:
- Точное московское время наблюдения проблемы.
- Название сайта, на котором была замечена проблема.
- Если ошибка отображается не сразу, а после определённых действий (добавление изображения, отправка формы с сайта, импорт файлов), подробно опишите порядок действий, по которому мы сможем воспроизвести проблему.
- Если для воспроизведения проблемы необходимо авторизоваться в административной части сайта, предоставьте логин и пароль для доступа.
Начинающие веб-мастера и системные администраторы временами сталкиваются с ошибкой 502 bad gateway nginx. Nginx — это не просто один из лучших веб-серверов, в то же время, он проектировался как отличный прокси. Логически можно предположить, что эта ошибка возникает, когда что-то не так со шлюзом.
И необязательно чтобы вы использовали Nginx в качестве прокси для доступа к сети. Нет, для работы большинства сайтов требуется генерация динамического контента, например, на php. Поэтому Nginx часто выступает в прокси для Apache или php-fpm. В этой статье мы рассмотрим что означает 502 bad gateway Nginx, как исправить ее.
Как и следует из названия, эта ошибка значит, что Nginx попытался связаться со шлюзом и у него ничего не вышло. Например, запросы от пользователей принимает Nginx, поскольку он работает быстро и потребляет мало ресурсов, а за генерацию контента отвечает php-fpm. Если сервис php-fpm во время обработки запроса получил какую-либо ошибку и не вернул результата, или же он вообще отключен и Nginx не может получить к нему доступ мы получим такую ошибку.
Вот основные причины:
- Nginx используется в качестве прокси для Apache или php-fpm, но эти сервисы не запущены;
- Nginx используется качестве прокси для php-fpm, но параметры доступа к сокету неверно настроены;
- Неверно настроены значения размера буфера и таймаута для php-fpm в nginx.conf;
- Ошибки в конфигурации Nginx.
Как исправить ошибку 502 bad gateway Nginx
1. Анализ логов и перезапуск
Чтобы исправить ошибку нужно выяснить что случилось со шлюзом. Лучший способ сделать это — посмотреть логи Nginx, там обязательно должно быть что-то написано и намного подробнее, чем в выводе браузера:
tail -f /var/log/nginx/error.log
Это уже должно дать вам некоторые подсказки что делать дальше. Еще в первую очередь не помешает проверить файл конфигурации Nginx на ошибки:
nginx -t
Допустим, у нас в качестве шлюза для генерации динамического содержимого используется php-fpm. Тогда нужно проверить запущен ли вообще этот сервис:
ps aux | grep php
Если все процессы уже запущены, попробуйте перезапустить их с помощью systemd:
sudo systemctl restart php-fpm
Если процесс остановлен, то его нужно запустить:
sudo systemctl start php-fpm
Это самая распространенная причина, вызывающая ошибку 502 Bad Gateway и обычно после перезапуска сервиса все будет работать, вам осталось выяснить только почему он завершился. В этом вам может помочь просмотр лога php-fpm:
sudo tail -f /var/log/php7.0-fpm.log
Но если такой рецепт не помог, и ошибка 502 bad gateway nginx нужно идти дальше. Внимательно пересмотрите лог, возможно, там уже есть ответ.
2. Доступность php-fpm и владелец
Также эта ошибка может возникать при проблемах доступа к файлу сокета php-fpm, например, когда этот файл называется по другому или для него выставлены неверные права. Сначала убедитесь, что в конфигурационном файле /etc/nginx/nginx.conf указан правильный адрес файла сокета php-fpm:
location ~ .php$ {
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
include fastcgi_params;
}
Файл /var/run/php7.0-fpm.sock должен действительно существовать в файловой системе. Дальше нужно убедиться, что у сокета правильный владелец, это должен быть тот же пользователь, от имени которого запускается Nginx, группа тоже должна соответствовать. Откройте файл /etc/php7.0/fpm/pool.d/www.conf и найдите строчки user и group. Они должны иметь такое же значение, как строчка user в конфиге nginx.conf:
listen = /var/run/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data
После того как выставите правильные параметры, перезапустите сервисы:
sudo service php5-fpm restart
$ sudo service nginx restart
3. Время отклика и размер буфера
Возможно, размер буфера и время ожидания ответа от fastcgi настроены неверно и программа просто не успевает обработать большой запрос. Попробуйте увеличить такие параметры в /etc/nginx/nginx.conf. Если таких строк не существует, добавьте их в блок http, как здесь:
sudo vi /etc/nginx/nginx.conf
http {
...
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
...
}
Выводы
В этой статье мы рассмотрели 502 bad gateway nginx что это значит и как исправить эту ошибку. Как видите, может быть достаточно много причин ее возникновения, но решить все достаточно просто если внимательно посмотреть логи и понять в чем там действительно проблема. Надеюсь, информация была полезной для вас.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
В этом руководстве мы покажем вам, как исправить 502 ошибки неверного шлюза на веб-сервере Nginx. Если вы запускаете веб-сервер Nginx, вы, возможно, уже столкнулись с досадной ошибкой 502 плохого шлюза. Это довольно распространенная ошибка, скорее всего, вызванная настройками буфера PHP или FastCGI и тайм-аутов. Из этого туториала Вы узнаете, как исправить плохой шлюз Nginx 502 на веб-сервере Nginx. В этом сообщении показано, как решить эту проблему, а также параметры конфигурации, чтобы предотвратить ее повторное появление при перезагрузке.
В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo
‘ к командам для получения привилегий root. Я покажу вам пошаговое решение ошибки 502 неверного шлюза на веб-сервере Nginx.
Исправить ошибку 502 Bad Gateway на Nginx
Шаг 1. Сначала проверьте журнал данных веб-сервера Nginx.
Вы можете более подробно увидеть, что конкретно влечет за собой ошибка, перейдя в файл журнала ошибок вашего веб-сервера. Вся информация об ошибках и диагностическая информация хранится в этом файле, что делает его ценным ресурсом для проверки, когда вам нужны дополнительные сведения о конкретной ошибке. Вы можете найти этот файл в Nginx, перейдя в ./var/log/nginx/error.log
Шаг 2. Решите 502 проблемы со шлюзом.
- Метод 1. Изменения в Nginx Config.
Выполните следующую команду, чтобы отредактировать Nginx conf:
sudo nano /etc/nginx/nginx.conf
http { ... fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; ... }
После этого перезапустите службу Nginx, чтобы вступили в силу:
sudo nginx -t sudo systemctl restart nginx
- Метод 2. Измените PHP-FPM для прослушивания сокета Unix или сокета TCP.
nano /etc/php-fpm.d/www.conf
listen = /var/run/php5-fpm.sock To: listen = 127.0.0.1:9000
После этого перезапустите PHP-FPM, чтобы изменить эффект:
sudo systemctl restart php-fpm
Если вы настраиваете php-fpm для прослушивания сокета Unix, вы также должны проверить, что у файла сокета есть правильный владелец и разрешения.
chmod 0660 /var/run/php5-fpm.sock chown www-data:www-data /var/run/php5-fpm.sock
- Метод 3. Отключить APC.
Кэширование APC может вызвать проблемы 502 Bad Gateway в определенных средах, вызывая ошибки сегментации. Я настоятельно рекомендую использовать Memcache (d), но XCache также является хорошей альтернативой.
Поздравляю! Вы успешно решили 502 проблемы со шлюзом. Благодарим за использование этого руководства для исправления 502 проблем со шлюзом в системе Linux. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Nginx .
Nginx был запущен в 2004 году как веб-сервер с открытым исходным кодом. С момента выпуска он очень часто используется для хостинга веб-сайтов. Помимо этого, он также используется как балансировщик нагрузки, прокси-сервер электронной почты, обратный прокси-сервер и HTTP-кеш. Как и любой другой веб-сервер, Nginx также подвержен определенным ошибкам, из которых наиболее распространенной является ошибка 502 Bad Gateway. Это очень общий тип ошибки, которая возникает, когда вы пытаетесь получить доступ к веб-серверу, но не можете его достичь. В этом случае ваш браузер может отобразить ошибку 502 Bad Gateway. Поскольку вместе с этой ошибкой не появляется никакой другой информации, пользователь не имеет представления о том, что именно пошло не так и как их исправить.
Поэтому в сегодняшней статье мы попытаемся найти все потенциальные причины ошибки 502 Bad Gateway в Nginx, а также способы ее исправления.
Причины ошибки 502 Bad Gateway в Nginx
Ошибка 502 Bad Gateway в Nginx может быть вызвана несколькими причинами, наиболее распространенные из которых перечислены ниже:
Недостижимый домен.
Когда вы вводите имя домена в строке поиска браузера и нажимаете клавишу Enter для доступа к этому веб-сайту, самой первой задачей, которая выполняется, является обращение к вашей системе доменных имен (DNS). DNS-сервер сопоставляет указанное доменное имя со своим зарезервированным IP-адресом, а затем связывается с соответствующим сервером, который, в свою очередь, отвечает вам, отображая запрошенную веб-страницу в вашем веб-браузере. Однако иногда DNS-серверу не удается достичь указанного домена из-за ошибки 502 Bad Gateway в Nginx. Это может произойти из-за определенных изменений, происходящих в вашем DNS, которые вступят в силу через достаточно времени после того, как он начнет работать правильно.
Чрезмерно активированные брандмауэры
Иногда настройки брандмауэра настолько строгие и жесткие, что они даже блокируют законных пользователей и запрещают им доступ к вашему сайту. Это, в свою очередь, может привести к тому, что пользователи увидят ошибку 502 Bad Gateway всякий раз, когда они попытаются получить доступ к вашему сайту.
Хостинг-сервер выходит из строя
Поскольку серверы имеют ограниченную емкость, в которой они не могут обслуживать запросы пользователей, поэтому, как только эта емкость будет достигнута, все будущие входящие пользователи могут столкнуться с ошибкой 502 Bad Gateway, поскольку ваш сервер будет отключен. Другой причиной этого может быть то, что вы намеренно остановили свой сервер для обслуживания.
Исправление ошибки 502 Bad Gateway в Nginx
В зависимости от причин ошибки 502 Bad Gateway в Nginx вы можете попытаться устранить ее, используя любое из следующих решений:
Обновите свою веб-страницу
Иногда вы можете увидеть ошибку 502 Bad Gateway только из-за некоторых временных проблем с подключением, которые можно решить, просто обновив веб-страницу и проверив, есть ли у вас доступ к веб-странице. Если вам по-прежнему не удается перейти на желаемую веб-страницу, вы также можете попытаться очистить кеш браузера, потому что иногда в кеше браузера сохраняется ответ с ошибкой 502 Bad Gateway. Из-за этого ваш браузер снова и снова отображает эту ошибку, поэтому очистка кеша может решить эту проблему.
Выполните тест Ping.
Если вы по-прежнему не можете получить доступ к своему веб-серверу даже после обновления веб-страницы и очистки кеша браузера, возможно, на вашем веб-сервере возникли серьезные проблемы с подключением. В этом случае вы можете попробовать выполнить тест Ping, при котором вы отправляете запрос Ping на свой сервер и проверяете, доступен ли он или нет. Если ваш сервер доступен, то вы сможете получить к нему доступ, если нет, то вам придется искать другие решения, перечисленные ниже.
Ищите возможные изменения в вашем DNS
Возможно, вы поменяли поставщика услуг хостинга или изменили IP-адрес, с которым можно связаться с вашим веб-сервером. Эти изменения всегда отражаются на DNS-сервере, но для их правильного выполнения требуется некоторое время. В этом случае вам нужно подождать, пока изменения вступят в силу во всем вашем DNS, после чего вы больше не будете видеть ошибку 502 Bad Gateway в Nginx.
Мониторинг журналов сервера. Журналы
сервера содержат подробную информацию о состоянии вашего сервера и всех действиях, которые он выполняет. Если вы регулярно отслеживаете журналы сервера, они могут очень помочь вам в выяснении, что именно пошло не так, следовательно, позволяет исправить ошибку 502 Bad Gateway в Nginx, поскольку знание точной причины ошибки на самом деле является первый шаг к устранению этой ошибки.
Перепроверьте настройки брандмауэра
Вам необходимо применить это исправление, если вы выяснили, что настройки брандмауэра слишком строгие и даже блокируют доступ законных пользователей к вашему сайту. В этом случае сброс настроек брандмауэра может легко исправить ошибку 502 Bad Gateway в Nginx.
Отладка кода вашего веб-сайта
Иногда проблема связана не с проблемами подключения, а скорее с ошибкой кода вашего веб-сайта, которая вызывает ошибку 502 Bad Gateway в Nginx. Выявление таких ошибок вручную практически невозможно, поэтому настоятельно рекомендуется отлаживать код своего веб-сайта в изолированной среде. Это не только определит точную проблему, которую вы можете немедленно исправить, но и предотвратите повреждение вашей физической системы из-за запуска на ней ошибочного кода, поскольку вы запускаете ее в изолированной среде.
Попробуйте связаться с вашим поставщиком услуг хостинга
Иногда, когда вы не можете разместить свой собственный веб-сервер, вы берете услуги хостинга в аренду у поставщика услуг хостинга. В этом случае проблема, которая вызывает ошибку 502 Bad Gateway в Nginx, возможно, связана не с вашей стороной, а скорее с какой-то проблемой с услугой хостинга, которую вы получаете. Единственное решение этой проблемы – связаться с вашим поставщиком услуг хостинга, который не только возьмет на себя ответственность за выяснение этой проблемы, но также может предложить способы, с помощью которых вы можете предотвратить повторение этой ошибки в будущем.
Заключение
В этой статье мы кратко познакомили вас с Nginx и наиболее распространенным типом ошибок, с которыми сталкивается этот веб-сервер, в частности, с ошибкой 502 Bad Gateway. Затем мы также указали все возможные причины этой ошибки. Наконец, мы поделились с вами всеми различными решениями о том, как можно исправить эту ошибку в Nginx.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.