Ошибка 502 bad gateway в Nginx

Thank you for reading this post, don't forget to subscribe!

Ошиб­ка 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 может воз­ник­нуть в слу­чае, если исполь­зу­ет­ся сокет и к нему нет доступа:

В этом слу­чае, убе­ди­тесь, что php-fpm сокет созда­ет­ся с нуж­ны­ми пра­ва­ми. В фай­ле настро­ек fpm (/etc/php-fpm.d/www.conf):