Hello friend I have that! This command is not going «sudo tail -30 /var/log/nginx/error.log»
2016/08/31 15:46:55 [emerg] 11039#11039: «fastcgireadtimeout» directive is duplicate in /etc/nginx/nginx.conf:45
2016/08/31 17:01:32 [info] 12089#12089: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:113
2016/08/31 17:01:32 [info] 12102#12102: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:113
2016/08/31 17:03:07 [info] 27788#27788: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:113
2016/08/31 17:03:07 [info] 27800#27800: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:113
2016/08/31 17:12:06 [info] 28408#28408: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:113
2016/08/31 17:12:06 [notice] 28416#28416: signal process started
2016/08/31 17:15:14 [info] 28542#28542: Using 32768KiB of share.
2016/08/31 17:27:44 [info] 29414#29414: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:109
2016/08/31 20:36:18 [emerg] 31599#31599: «fastcgipass» directive is not allowed here in /etc/nginx/sites-enabled/default:52
2016/08/31 21:00:24 [info] 31896#31896: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:109
2016/08/31 21:03:34 [emerg] 32052#32052: unknown directive «…» in /etc/nginx/nginx.conf:13
2016/08/31 21:14:28 [emerg] 32480#32480: «fastcgibuffers» directive is duplicate in /etc/nginx/conf.d/fastcgi.conf:6
2016/08/31 21:15:47 [info] 464#464: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:110
2016/08/31 21:15:47 [info] 495#495: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:110
2016/08/31 21:34:35 [emerg] 700#700: «fastcgipass» directive is not allowed here in /etc/nginx/sites-enable.
inx/nginx.conf:110
2016/08/31 23:11:12 [info] 2311#2311: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:109
2016/08/31 23:20:58 [emerg] 2499#2499: «location» directive is not allowed here in /etc/nginx/nginx.conf:11
2016/08/31 23:27:14 [info] 2636#2636: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:110
2016/08/31 23:28:47 [info] 2770#2770: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:110
2016/08/31 23:35:49 [emerg] 2830#2830: «location» directive is not allowed here in /etc/nginx/conf.d/xyz.conf:1
2016/08/31 23:37:14 [info] 2951#2951: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:110
2016/08/31 23:42:09 [emerg] 3201#3201: «location» directive is not allowed here in /etc/nginx/nginx.conf:31
2016/09/01 00:00:46 [info] 3707#3707: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:111<.
/etc/nginx/nginx.conf:4
2016/09/01 00:18:27 [emerg] 4514#4514: «accesslog» directive is not allowed here in /etc/nginx/nginx.conf:4
2016/09/01 00:18:47 [info] 4639#4639: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:112
2016/09/01 00:19:29 [emerg] 4802#4802: «accesslog» directive is not allowed here in /etc/nginx/nginx.conf:10
2016/09/01 00:21:17 [info] 5054#5054: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:112
2016/09/01 00:21:17 [emerg] 5054#5054: «accesslog» directive is not allowed here in /etc/nginx/nginx.conf:135
2016/09/01 00:21:46 [info] 5209#5209: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:112
2016/09/01 00:27:06 [info] 5423#5423: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:112
2016/09/01 00:29:13 [info] 5597#5597: Using 32768KiB of shared memory for push module in /etc/ngi.
push module in /etc/nginx/nginx.conf:114
2016/09/01 01:39:10 [info] 7615#7615: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:111
2016/09/01 01:44:52 [info] 7835#7835: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:111
2016/09/01 02:00:09 [info] 2378#2378: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:111
2016/09/01 02:12:18 [info] 2376#2376: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:111
2016/09/01 02:37:35 [alert] 2472#2472: *59 open socket #18 left in connection 5
2016/09/01 02:37:35 [alert] 2472#2472: aborting
2016/09/01 02:38:53 [info] 2380#2380: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:111
2016/09/01 02:44:46 [info] 4418#4418: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:111
2016/09/01 02:44:49 [info] 4461#4461: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:111
2016/09/01 02:44:49 [info] 4473#4473: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:111
2016/09/01 02:49:46 [info] 4596#4596: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:111
2016/09/01 02:49:46 [notice] 4604#4604: signal process started
www.digitalocean.com

Если эта ошибка возникает, значит 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 и проверить в каких таблицах находится больше всего записей. После этого, если Вы видите, что определенная таблица не содержит ценной информации, а содержит просто логи, статистику, кеш, то Вы можете очистить или удалить её.
www.hostinger.ru
502 bad gateway nginx — ошибка, которая выводится веб-сервером Nginx в случае если он не может дождаться ответа от какого-либо сервиса. Nginx сам по себе не может обрабатывать скрипты, поэтому чаще всего он является фронтэндом для другого сервиса. Это Apache или PHP-FPM в случае если обрабатываются PHP скрипты, также бэкендом может быть Unicorn UWSGI или что-то иное.
Поскольку 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, который будет запускать службы не дождавшись от них ответа.
server-gu.ru
Что означает 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:
Файл /var/run/php7.0-fpm.sock должен действительно существовать в файловой системе. Дальше нужно убедиться, что у сокета правильный владелец, это должен быть тот же пользователь, от имени которого запускается Nginx, группа тоже должна соответствовать. Откройте файл /etc/php7.0/fpm/pool.d/www.conf и найдите строчки user и group. Они должны иметь такое же значение, как строчка user в конфиге nginx.conf:
После того как выставите правильные параметры, перезапустите сервисы:
sudo service php5-fpm restart
$ sudo service nginx restart
3. Время отклика и размер буфера
Возможно, размер буфера и время ожидания ответа от fastcgi настроены неверно и программа просто не успевает обработать большой запрос. Попробуйте увеличить такие параметры в /etc/nginx/nginx.conf. Если таких строк не существует, добавьте их в блок http, как здесь:
sudo vi /etc/nginx/nginx.conf
Выводы
В этой статье мы рассмотрели 502 bad gateway nginx что это значит и как исправить эту ошибку. Как видите, может быть достаточно много причин ее возникновения, но решить все достаточно просто если внимательно посмотреть логи и понять в чем там действительно проблема. Надеюсь, информация была полезной для вас.
losst.ru
Что значит «502: Bad Gateway»
Ошибка означает, что запрос к веб-серверу со стороны браузера поступил, но был неправильно обработан или удален из общей очереди. Если сервер программно располагается за Интернет-шлюзом, то вероятна проблема именно в шлюзе или в работе самого веб-сервера, который и передает на шлюз информацию об ошибке, а она затем отображается в браузере пользователя.
Причины возникновения ошибки 502. Недостаток ресурсов сервера
Самой главной проблемой появления этой ошибки является недостаточный уровень серверных ресурсов для обработки входящих запросов, из-за чего сервер начинает генерировать ошибку 502. Нехватка ресурсов может быть как аппаратной (нехватка оперативной памяти, недостаточная скорость процессора или диска), так и программной, связанной с неправильной настройкой сервера или используемого программного обеспечения.
Но бывает ситуация, когда при достаточном уровне ресурсов сервер продолжает периодически генерировать ошибку 502: Bad Gateway. Что это может быть, если не аппаратные сбои?
Ограничение ресурсов может быть введено автоматически при выходе выделенного сервера VPS или виртуального хостинга за пределы тарифного плана. В результате сервер может не справиться с текущей нагрузкой.
Веб-серверы, такие как Apache, имеют строго определенное количество обработчиков запросов, которые задаются при его конфигурации. Если все они одновременно заняты, поступивший запрос помещается в очередь, и время ее не может превышать минуту для каждого из них. В случае превышения времени ожидания обработка запроса отменяется, и пользователю выдается ошибка 502. Дополнительно обработчику может просто не хватить текущих свободных ресурсов для нормальной обработки очереди.
В случае использования на сервере программной связки PHP + FastCGI, при неоптимизированном количестве php-cgi процессов почти всегда возникают перегрузки и нехватка ресурсов.
Наиболее распространенные причины возникновения нехватки ресурсов для обработки запросов
- Сервер не справляется с текущим количеством одновременных посетителей сайта. Также значительную часть ресурсов могут расходовать различные поисковые роботы и неправильные программные скрипты.
- Перегрузка сервера при проведении хакерских DDos-атак, когда сервер доводится до отказа большим количеством одновременных запросов для обработки.
- Бывает ситуация, когда при использовании услуги виртуального хостинга неожиданно возникает ошибка 502: Bad Gateway. Что это значит? Это может свидетельствовать о наличии проблемы на стороне хостинга, известной под названием оверселлинг, т. е. размещение хостером на одном сервере такого количества клиентских аккаунтов, что в моменты пиковой нагрузки им не хватает текущих аппаратных ресурсов.
- Некорректное конфигурирование собственно сервера или отсутствие программной или аппаратной совместимости.
- Использование на сайте подключаемых внешних ресурсов, таких как счетчики посещений, различных информеров, скриптов. Ошибка может возникнуть при проблемах с такими внешними источниками.
- Загрузка файлов большого размера на сервер при плохом качестве Интернет-соединения.
Ошибки скриптов PHP
Ошибка 502 может возникать из-за скриптов, плагинов или расширений на языке PHP, которые при завершении выполнения не передают серверу соответствующий код. Например, генерировать ошибку 502: Bad Gateway nginx как один из вариантов прокси-сервера может из-за неправильного определения состояния скрипта и воспринятия обрыва соединения со службами веб-сервера как системный сбой.
Итак, вся статическая информация (рисунки, страницы сайта, файлы Robots) загружается нормально и без ошибок. Что значит «502: Bad Gateway» в этом случае? Что сбой возникает именно при загрузке программных скриптов, плагинов и расширений.
Меры по устранению ошибки 502
В первую очередь необходимо провести анализ текущей серверной нагрузки, особенно в моменты появления ошибки. Особое внимание следует обратить на загрузку оперативной памяти и при необходимости увеличить ее размер для улучшения процесса обработки запросов.
Проверьте правильность настройки лимитов на количество одновременно обрабатываемых php-cgi процессов. Их неправильная конфигурация приводит к быстрой перегрузке сервиса и постоянному возникновению сообщения «502: Bad Gateway». Что это такое и как правильно настроить лимиты процессов, узнайте в службе поддержки хостинг-провайдера.
Максимально сократите запросы к внешним сетевым ресурсам и установите предельное время их загрузки и ответа. Это позволит увидеть, на что уходят ресурсы сервера, и поможет избавиться от внешней «пробуксовки» сайта.
В случае подозрения на оверселлинг или неправильную настройку серверной конфигурации обратитесь в службу поддержки хостера. Если не будет реакции, и проблема не будет устранена, смените хостинг-провайдера. Недоступность сервера может привести к убыткам из-за простой ошибки 502: Bad Gateway. Что это означает для бизнеса, думаю, не стоит объяснять.
fb.ru
Что вызывает 502 ошибку сервера
Ошибка 502 говорит о том, что обратный прокси-сервер (допустим, Apache) для сервера источника (например, nginx) получает некорректный ответ от исходного веб-сервера.
Посмотрев внимательнее, мы обнаружили, что Apache работает в нем как прокси nginx. Веб-сервер перезагружал http-сервис почти каждый час. Наш опыт в устранении подобных ошибок показывает, что ошибка 502 Bad Gateway появляется по одной из следующих причин:
- Перегруженность сервера. Веб-сервер может падать из-за нехватки ресурсов (например, оперативной памяти), вызываемой избытком выполняемых процессов или агрессивными действиями пользователей;
- Частая перезагрузка веб-сервера. Такое случается при ошибках конфигурации, сбоях в модулях, любых атаках, избытке выполняемых процессов и приложений. В результате пользователь видит временную 502 ошибку;
- Плохой код сайта. Сайты с устаревшими приложениями или корявым кодом влияют на правильное функционирование сервера и ведут к периодическому возникновению 502 ошибки;
- Ошибки сети. Прочие ошибки конфигурации сети (проблемы с DNS, маршрутизация, блокировка файерволом, используемым на сервере, проблемы у провайдера) также становятся причиной появления 502 ошибки сервера;
- Время ожидания серверного программного обеспечения. 502 ошибка неизбежна при снижении скорости выполнения запросов в nginx, когда средство кэширования (например, Varnish Cache) уходит в таймаут. Сюда же относятся и медленные запросы.
Как исправить 502 серверную ошибку в nginx
Сначала необходимо определить первопричину возникновения данной ошибки. Мы изучили серверные логи во время перезагрузок, и нашли там ошибки seg fault.
Затем мы покопались в конфигурации сервера, и увидели, что там отсутствовал модуль mod_rpaf. Именно это и вызывало падение сервера:
Rpaf – это модуль Reverse proxy add forward, разработанный для серверов Apache. Он нужен в том случае, если вы задаете Nginx фронденд-сервером и хотите получить реальный IP серверных запросов.
Данный модуль не работал под Apache-2.4, поэтому мы немного его подправили. После перекомпиляции и перезагрузки Apache ошибки сегментации прекратились.
Мы последили за сервером еще пару часов и убедились в том, что перезагрузки прекратились, а серверные ошибки исчезли.
Вот несколько советов, как исправить ошибку 502 bad gateway:
- Следите за тем, чтобы файлы сайта (плагины и темы) своевременно обновлялись и не устаревали;
- Оптимизируйте и исправляйте медленные MySQL-запросы;
- Проводите аудит серверного программного обеспечения и вовремя обновляйте модули;
- Избегайте проблем с маршрутизацией и отслеживайте любые перегрузки/атаки на сервер.
Перевод статьи «HOW TO FIX «502 SERVER ERROR – BAD GATEWAY» IN WEB SERVERS» был подготовлен дружной командой проекта Сайтостроение от А до Я.
www.internet-technologies.ru
Иногда, путешествуя по просторам Интернет и зайдя на тот или иной сайт, Вы можете увидеть там не нужную информацию, а белый фон и на нём крупными буквами ошибка: 502 Bad Gateway. Что это значит? Ничего хорошего, на самом деле. Это сообщение выдаёт веб-сервер nginx при возникновении некоторых проблем в работе. Если Вы попытаетесь открыть другие страницы на этом же сайте по сохранённым ссылкам, то успехом это так же не увенчается. Что же делать? А это зависит от того — кем Вы являетесь для этого сайта.
Если Вы простой посетитель, то решение одно — ждать пока администрация веб-ресурса починит сервис. Как долго? Сложно сказать. Если это крупный портал какой-нибудь компании, фирмы или гос.учереждения, то админ должен восстановить работу сайта в ближайшее время. Если же это личный блог какого-нибудь Васи Пупкина, то вполне вероятно что никто ничего чинить не будет, так как Вася про свой блог забыл и он ему не нужен.
а) Если Вам очень нужна находящаяся на страничке информация, то либо попробуйте найти контакты администрации и связаться с ней по почте или через регистратора или хостера, либо воспользуйтесь веб-кешем поисковиков, введя ссылку на сайт или страничку в поисковую строку поисковика и открыв сохранённую копию.
б) Очень часто ошибка Nginx 502 означает что интересующий веб-ресурс перегружен. Что делать? Опять же только ждать пока нагрузка уменьшится, периодически обновляя страничку в браузере.
в) Если через какое то время на других компьютерах и иных устройствах (планшет, телефон, ноутбук) сайт открывается без проблем, а с Вашего всё равно отображается ошибка nginx, то нужно почистить кеш браузера.
Если Вы владелец или администратор сайта, который при попытке на него зайти выдаёт ошибку 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. Выясняйте причину — скорее всего её устранение вернёт Ваш сайт к нормальной жизни.
set-os.ru
How Nginx 502 Bad Gateway Error happens and what is its connection with php-fpm
Common 502 errors include the following messages from Nginx server
- “502 Bad Gateway”
- “502 Bad Gateway NGINX”
- “502 Proxy Error”
- “502 Service Temporarily Overloaded”
- “Error 502”
- “HTTP Error 502 – Bad Gateway”
- “HTTP 502 Bad Gateway”
These errors point to the same situation of Nginx server and the error came across below situations
- Nginx server running with php-fpm service
- Nginx is running as a reverse proxy to Apache server
- Nginx running as a gateway to other services like Python, Ruby, etc.
- Bad configuration of cache or timeout.
Now the error says there is a “BAD GATEWAY”. That means Nginx server is trying to communicate to another service through a gateway and it is not getting any answer from that gateway. This is Nginx 502 Bad Gateway error situation.
So Nginx and another service (Apache, php-fpm, other services) running. Both are communicating through a gateway and Nginx is not getting any answer from the gateway. To solve 502 Bad Gateway Error the other service running with Nginx must answer through the gateway.
Usually, this happens due to a misconfiguration in the configuration files of the server. Or the other service is not running properly with Nginx. So to solve this problem a two-step check is required.
- Step 1: Check the other server status, whether it is running perfectly, is it giving the desired output?
- Step 2: Is the configuration correct? Is the second service configured to answer the gateway perfectly?
Nginx 502 Bad Gateway Error with PHP-FPM
The problem occurs due to the following conditions
- PHP-FPM won’t get started
- PHP-FPM not running
- NGINX can’t communicate with PHP-FPM server
- NGINX is timing out
- PHP-FPM is timing out with requests
Check whether php-fpm is running or not
service php-fpm status
or
systemctl status php-fpm.service
will tell you about the current situation of php-fpm server
Just restart the php-fpm server to solve this problem
service php-fpm restart
or
systemctl restart php-fpm.service
for php5 the name of service may be php5-fpm, for PHP 7 it may be php7.0-fpm or php7.1-fpm or php7.2-fpm check accordingly.
Php-fpm is not communicating with Nginx and causing a 502 Bad Gateway Error
This is caused due to the misconfiguration of the php-fpm server or the misconfiguration of Nginx server.
Check the following configuration files in the worker pool configuration (the file is in /etc/php/fpm/pool.d/www.conf
, this may vary with installation) and verify these lines ( www-data is the owner of the web server process, that is nginx)
user = www-data group = www-data listen = /var/run/php7-fpm.sock listen.owner = www-data listen.group = www-data
then restart the php-fpm service.
If the Nginx server and php-fpm are running and still getting a 502 Bad Gateway error then it is the problem with communicating the gateway. The problem is happening due to the misconfiguration in the file /etc/nginx/sites-enabled/default
, by default or the file name in the name of the website called /etc/nginx/sites-enabled/mywebsite.com.conf
Look at the segment where the fastcgi_pass configuration. It must be the same as the listen in the above configuration
location ~ .php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php7-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_nam$ include fastcgi_params; }
See
listen = /var/run/php7-fpm.sock
and
fastcgi_pass unix:/var/run/php7-fpm.sock
must be the same.
Then restart both Nginx and php-fpm servers. Now check the website whether it is serving properly.
502 Bad Gateway Error due to Nginx is timing out
if php-fpm is running and serving the requests properly then there will be a chance of Nginx is timing out. That is php-fpm do not respond to NGINX in a timely manner will cause a 502 because NGINX couldn’t wait any longer for a response from php-fpm.
In this case, increasing the maximum execution time of the application and NGINX’s timeout window would be the best solution.
To get this we need two changes:
First, increase the maximum execution time of the php-fpm server. To do this open PHP-FPM’s configuration file
sudo nano /etc/php7/fpm/php.ini
find the following line and increase the number to a higher value. Usually 60 or 120.
max_execution_time = 30
The value depends upon the expected execution time of the application running in the php-fpm server. Add some extra buffer time to get rid of the situation again.
Exceptionally large execution time will affect the server performance and it may lead to a dead server process in the memory.
Second, edit the NGINX config
sudo nano /etc/nginx/nginx.conf
add the following within the HTTP block to increase timeout windows, buffers, and buffer sizes:
http { ... fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; }
Save the changes to the file and exit. Now restart Nginx and php-fpm
service php-fpm restart
or
systemctl restart php-fpm.service and
service nginx restart
systemctl restart nginx.service
502 Bad Gateway Error due to PHP-FPM is timing out
if the php-fpm server is timing out upon execution of an exceptionally long PHP script or the script is blocked by a large MySQL query process then these solutions may not work. In that situation, you could temporarily extend PHP’s execution time limit by invoking the set_time_limit()
function from within the PHP application, but if you are continuously reaching into the execution timeout limit then as a long-term solution like profiling or increasing PHP-FPM’s timeout may be more appropriate to get rid of a 502 error more safely. These things must be done after an extensive research of the execution time of the corresponding PHP function or MySQL query. Take a look at the memory and system load during the execution is a must for a smooth operation of this server.
Nginx 502 Bad Gateway Error when Nginx as Proxy for Apache
In this situation, the gateway service is Apache and the Nginx is a proxy for Apache. If apache server dies or it’s not well configured, it can cause this 502 Bad Gateway error. How to fix the apache error? Most of the times, restarting apache web server will get rid of this, but you must check the log files to know why exactly this was caused.
ibcomputing.com