Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
HTTP_502_BAD_GATEWAY Linux / DevOps

Траблшутинг ошибки 502 Bad Gateway в Nginx: PHP-FPM, Node.js и Python

Обновлено: 21.08.2026
  • Браузер возвращает HTTP-статус 502 Bad Gateway при обращении к сайту.
  • В error.log Nginx появляется запись connect() to unix:/run/php/php-fpm.sock failed (111: Connection refused).
  • Ошибка upstream prematurely closed connection while reading response header from upstream.

1. Анализ журнала ошибок Nginx

tail -n 50 /var/log/nginx/error.log

2. Сценарий А: Ошибка прав unix-сокета PHP-FPM

Если в логе (13: Permission denied), проверьте владельца сокета в /etc/php/*/fpm/pool.d/www.conf:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660
systemctl restart php*-fpm

3. Сценарий Б: Переполнение очереди бэкенда (Node.js / Python Gunicorn / Puma)

Если процесс падает по OOM или не успевает разгребать очередь, увеличьте буферы и таймауты проксирования в блоке location Nginx:

location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    
    # Увеличение таймаутов на обработку тяжелых запросов
    proxy_connect_timeout 60s;
    proxy_send_timeout 60s;
    proxy_read_timeout 120s;
    
    # Буферизация заголовков апстрима
    proxy_buffer_size 128k;
    proxy_buffers 4 256k;
    proxy_busy_buffers_size 256k;
}

4. Проверка доступности порта приложения

ss -tulpn | grep -E "(3000|8000|9000|php)"
curl -I http://127.0.0.1:3000
Практический опыт инженера: Если бэкенд падает по segfault при генерации больших ответов, проверьте размер proxy_buffer_size: при превышении лимита Nginx закрывает соединение и пишет upstream sent too big header.

Частые вопросы (FAQ)

В чем разница между ошибками 502 Bad Gateway и 504 Gateway Timeout?

502 означает, что Nginx получил некорректный ответ (RST, сброс соединения, падение процесса) от бэкенда. 504 означает, что бэкенд жив, но не успел прислать ответ за время, установленное в proxy_read_timeout.

Почему PHP-FPM внезапно возвращает 502 при высокой нагрузке?

Исчерпан пул процессов (max_children reached). Увеличьте pm.max_children в пуле www.conf и параметр listen.backlog.