Що значить 502 bad gateway nginx

Початківці веб-майстри і системні адміністратори часом стикаються з помилкою 502 bad gateway nginx. Nginx - це не просто один з кращих веб-серверів, в той же час, він проектувався як відмінний проксі. Логічно можна припустити, що ця помилка виникає, коли щось не так зі шлюзом.

І необов`язково щоб ви використовували Nginx в якості проксі для доступу до мережі. Ні, для роботи більшості сайтів потрібно генерація динамічного контенту, наприклад, на php. Тому Nginx часто виступає в проксі для Apache або php-fpm. У цій статті ми розглянемо що означає 502 bad gateway Nginx, як виправити її.

Що означає 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, там обов`язково має бути щось написано і набагато докладніше, ніж у висновку браузера:

$ Nginx -t

Припустимо, у нас в якості шлюзу для генерації динамічного вмісту використовується php-fpm. Тоді потрібно перевірити чи запущений взагалі цей сервіс:

$ Sudo systemctl restart 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:


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/conf і знайдіть рядки user і group. Вони повинні мати таке ж значення, як рядок user в конфіги nginx.conf:

listen = /var/run/php7.0-fpm.sock
listen.owner = www-data
listen.group = www-data

Після того як виставите правильні параметри, запустіть сервіси:


$ Sudo service nginx restart

3. Час відгуку і розмір буфера

Можливо, розмір буфера і час очікування відповіді від fastcgi налаштовані невірно і програма просто не встигає обробити великий запит. Спробуйте збільшити такі параметри в /etc/nginx/nginx.conf. Якщо таких рядків не існує, додайте їх в блок http, як тут:

$ Sudo vi /etc/nginx/nginx.conf
...
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
...
}

висновки

У цій статті ми розглянули 502 bad gateway nginx що це означає і як виправити цю помилку. Як бачите, може бути досить багато причин її виникнення, але вирішити всі досить просто якщо уважно подивитися логи і зрозуміти в чому там дійсно проблема. Сподіваюся, інформація була корисною для вас.

>
Поділися в соціальних мережах:

Схожі
Що краще nginx або apache 2016Що краще nginx або apache 2016
Function fetch_assoc () on a non-objectFunction fetch_assoc () on a non-object
Установка squid в ubuntu 16.04Установка squid в ubuntu 16.04
Безпека php на серверіБезпека php на сервері
Як дізнатися реальний ip-адреса відвідувачаЯк дізнатися реальний ip-адреса відвідувача
Помилка 403 forbidden nginx 1.4 6 ubuntuПомилка 403 forbidden nginx 1.4 6 ubuntu
Установка nginx ubuntu 16.04Установка nginx ubuntu 16.04
Помилка apt-get command not foundПомилка apt-get command not found
Як налаштувати проксі в ubuntu з терміналуЯк налаштувати проксі в ubuntu з терміналу
Безкоштовний vpn-проксіБезкоштовний vpn-проксі
» » Що значить 502 bad gateway nginx