Как исправить ошибку 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 (пример):

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

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

Переходим с http на https - план действий

Июль 24, 2017 г.

Прежде чем переводить сайт на https протокол, нужно иметь четкий план того, что делать и в какой последовательности. Такая тактика хорошо работает и в ...

Читать

Проверка конфигурации nginx

Апрель 16, 2018 г.

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

Читать

 

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

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



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