Ошибка 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 означает, что запрос, который был передан веб-серверу имеет слишком большой размер. Запрос принято разделять на две части: заголовок — где находится общая информация, и тело запроса. Обычно тело запроса должно быть великим и его большой размер не вызывает никаких проблем. Тогда как заголовок обычно не большой и если браузер чего-то намудрит и передаст слишком много данных, то вы получите такую ошибку.

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

  • Исправить код сайта — естественно, что браузер не будет сам выдавать вам такие запросы. Они — результат ошибки в коде сайта, а значит исправив код — вы решите проблему;
  • Увеличить максимальный размер заголовка — если же вы уверены, что заголовок должен быть большим и это нормально для вашего сайта, то, возможно, стоит увеличить лимиты на размер заголовка в Nginx;
  • Если вы пользователь, то ждать пока ошибку исправит администратор ресурса.

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

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

  • client_body_buffer_size — размер буфера для тела запроса;
  • client_header_buffer_size — размер буфера для заголовка;
  • large_client_header_buffers — максимальное количество и размер буфера для чтения большого заголовка.

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

client_header_buffer_size 8k;

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

large_client_header_buffers 8 64k;

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

nginx -s reload

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

Выводы

В этой небольшой статье мы рассмотрели что делать с ошибкой request header or cookie too large nginx. Если у вас есть доступ к серверу, на котором расположен сайт по ssh, то вы можете исправить ее за несколько минут. Если у вас остались вопросы, спрашивайте в комментариях!

Creative Commons License
Статья Ошибка 414 Request header or cookie too large Nginx распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Ваше имя тоже может быть здесь. Начните писать статьи для Losst. Это просто! Смотрите подробнее как начать писать статьи - Пишите для нас

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, среднее: 5,00 из 5)
Загрузка...

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: