Site icon Мой компьютер

Ошибка 414 Request header or cookie too large Nginx

Ошибка 400 Bad Request Nginx встречается достаточно редко. Она означает, что запрос к серверу был сформирован неверно, и поэтому отклонен. Это может быть вызвано разными причинами. Например, один из HTTP заголовков был изменен, а поля контрольных сумм не исправлены и так далее.

В этой статье мы рассмотрим частный случай данной ошибки — Request header or cookie too large Nginx. Разберем что является причиной этой ошибки, почему она может возникать и как ее исправить.

Что означает Request header or cookie too large Nginx

Ошибка Request header or cookie too large означает, что запрос, который был передан веб-серверу имеет слишком большой размер. Запрос принято разделять на две части: заголовок — где находится общая информация, и тело запроса. Обычно тело запроса должно быть великим и его большой размер не вызывает никаких проблем. Тогда как заголовок обычно не большой и если браузер чего-то намудрит и передаст слишком много данных, то вы получите такую ошибку.

Есть два варианта решения проблемы:

Как исправить Request header or cookie too large Nginx

За максимальный размер передаваемого пакета отвечают три параметра, которые нужно разместить в секции http:

Больше всего нас интересует последняя строка. Первым парамтером передается количество буферов, а вторым размер каждого из них. Если размер заголовка превысит размер одного буфера, то пользователь получит ошибку 414. По умолчанию размер одного буфера равняется 8 килобайт. Делаем размер буфера для обычных запросов равным 8 килобайт:

client_header_buffer_size 8k;

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

large_client_header_buffers 8 64k;

Эти строки нужно добавить в секцию http перед всеми секциями server. Дальше можете перезагрузить Nginx:

nginx -s reload

И проверить воспроизводится ли ошибка. Если все было сделано правильно, то ошибки больше быть не должно.

Источник

Exit mobile version