Как исправить ошибку upstream sent too big header while reading response header from upstream?

Если текст подобной ошибки вы обнаружите в логах ngnix, то см. как её исправить в данной статье.

Ошибка связана с недостаточным размером буфера для передачи заголовка запроса. Во-первых, надо разобраться что является в данном случае upstream-ом, т.е. где требуется увеличить буфер.

В зависимости от того, как вы используете nginx, может понадобиться скорректировать размер буферов для одного из следующих компонентов: proxy, fastcgi или uwsgi. Или возможно для нескольких из них сразу.

По умолчанию размер буфера составляет 4/8 kb, чего обычно достаточно. Но при отправке сложных форм, этот лимит может оказаться исчерпан, тогда следует экспериментально подобрать размер буфера для вашего случая (увеличивая его, пока не пропадет данная ошибка).

Если проблема связана с использованием fastcgi (например вы используете связку с PHP) то добавьте или поменяйте в секции http следующие параметры:

Аналогично для proxy и uwsgi:

Возможно, что после правок (и перезапуска) nginx, ошибка в логах самого nginx появляться перестанет, но сама проблема, проявляющаяся как 5xx http ошибка не исчезнет. Это значит, что вы используете еще какой то софт, который проксирует nginx, и теперь скорее всего нужно решать данную проблему уже там.

Та же проблема, но уже из за Varnish

В моём случае это был varnish, потому я дополнительно расскажу как это поправить для него.

Нам нужно поправить значения буферов задаваемых тремя переменными: http_req_hdr_len, http_resp_hdr_len и http_max_hdr.

Для начала вы можете проверить текущие значения, используя в командной строке утилиту varnishadm (пример вывода):

В моём примере значение уже скорректировано (установлено 512 вместо 64). А вам требуется добавить значения параметров в DAEMON_OPS в файле /etc/varnish/varnish.params (пример):

Написать комментарий

Мало букафф? Читайте есчо !

Переадресация сайта с www и без www

Январь 26, 2017 г.

Издревле ломают голову сеошники над вопросом. Вопрос ставиться по-гамлетовски : с www или без www? "Быть или не быть, вот в чем вопрос". Быть или ...

Читать

HTTP авторизация для nginx

Декабрь 3, 2019 г.

Задача возникла в контексте SEO, требовалось предотвратить индексацию тестовых сайтов поисковыми системами. На практике видно, что инструкции файла robots.txt ...

Читать

 

Комментарии к «Как исправить ошибку upstream sent too big header while reading response header from upstream?»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: