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

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

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Nginx Error 502: Bad Gateway (upstream sent too big header while reading response header) Linux / DevOps

Nginx 502: upstream sent too big header — Решение проблемы

Обновлено: 18.08.2026  ·  Официальная база знаний

Пользователи получают ошибку 502 Bad Gateway при выполнении OAuth2 авторизации, обработке больших Cookie или интеграции с SSO. В журнале ошибок Nginx фиксируется: upstream sent too big header while reading response header from upstream.

Директива буфераРазмер по умолчаниюВлияние на заголовки
proxy_buffer_size4k или 8kНе вмещает крупные JWT токены и Cookie заголовков
fastcgi_buffer_size4k или 8kОбрезает объемные HTTP-заголовки от PHP приложений
proxy_buffers8 4k / 8 8kОпределяет емкость буферизации тела ответа
  • Сбой происходит не на всех страницах, а строго при логине, редиректах или передаче тяжелых Cookie.
  • Бэкенд отрабатывает с кодом 200 OK, но Nginx разрывает соединение с клиентом.
  1. Откройте конфигурационный файл виртуального хоста Nginx (или глобальный nginx.conf).
  2. Если ошибка возникает при работе с HTTP Proxy (NodeJS, Python, Java, Go), увеличьте буферы проксирования в секции http или server/location:
    proxy_buffer_size 128k;
    proxy_buffers 4 256k;
    proxy_busy_buffers_size 256k;
  3. Если ошибка возникает при работе с PHP-FPM / FastCGI, увеличьте буферы fastcgi:
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
  4. Если используется uWSGI (Django/Flask):
    uwsgi_buffer_size 128k;
    uwsgi_buffers 4 256k;
    uwsgi_busy_buffers_size 256k;
  5. Проверьте валидность конфигурации и примените изменения:
    sudo nginx -t
    sudo systemctl reload nginx
Аудит безопасности: Чрезмерно большие заголовки ответов (более 32 КБ) часто вызваны утечкой данных в Cookie (хранение сериализованных сессий на клиенте) или циклическим добавлением заголовков Set-Cookie в бэкенд-фреймворке.
Практический опыт инженера: Главный виновник в enterprise-системах — заголовок `Set-Cookie` от Keycloak/OIDC, содержащий огромные ID-токены и State. Выставляйте `proxy_buffer_size 128k` сразу на ingress-шлюзах.

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

Почему Nginx по умолчанию имеет такой маленький буфер заголовков?

Буфер по умолчанию (4-8 КБ) оптимизирован для минимального потребления памяти при обслуживании десятков тысяч одновременных соединений (C10k problem).

Что означает директива proxy_busy_buffers_size?

Она ограничивает суммарный размер буферов, которые могут находиться в состоянии отправки клиенту, пока остальные данные ответа продолжают читаться из бэкенда.

Может ли увеличение буферов привести к исчерпанию RAM на сервере?

Да, при тысячах одновременных запросов выделение 128-256 КБ на каждое соединение увеличит общее потребление оперативной памяти процессом Nginx.

Как узнать размер заголовков, отправляемых бэкендом?

Выполните запрос к бэкенду напрямую через curl -I -v http://127.0.0.1:8000 и оцените суммарную длину полученных заголовков.