Ошибка "request header or cookie too large" в Nginx возникает, когда размер заголовков запроса или cookie превышает максимально допустимый размер, который установлен в конфигурации сервера. В этой статье подробно разберем, почему так происходит.
Наши другие статьи по распространенным ошибкам:
- Ошибка add-apt-repository command not found
- Ошибка device or resource busy
- Ошибка Authentication token manipulation error
- Ошибка not found Nginx: причины появления и способы устранения
- Ошибка access denied for user root localhost
Что означает ошибка Request header or cookie too large в Nginx
Ошибка воспроизводится, когда размер заголовков HTTP/HTTPS запроса больше допустимого предела. Например, браузер отправляет слишком много Cookie файлов или отправленный запрос к веб-серверу имеет слишком большой размер.

Запрос принято разделять на две части: заголовки - где находится общая информация и мета данные, и тело запроса. Тело запроса, как и заголовок может быть разного размера - как маленьким, так и большим и его размер как правило не вызывает никаких проблем. Однако если в настройках веб-сервера задан параметр на ограничение длины заголовка запроса, то есть вероятность получить данную ошибку.
Как исправить?
Есть несколько способов решения проблемы
- Увеличить максимальный размер заголовков и cookie в конфигурации Nginx. Для этого нужно добавить следующие строки в файл конфигурации
nginx.conf. - Очистить cookie браузера. Если проблема возникает только на одном компьютере или устройстве, то может помочь очистка cookie в браузере.
- Использовать другой браузер или устройство. Если проблема возникает только на одном браузере или устройстве, то попробуйте использовать другой браузер или устройство.
- Использовать
POSTзапрос вместоGET. Если проблема возникает при отправкеGETзапроса с большими параметрами, то можно попробовать использоватьPOSTзапрос вместоGET. - Разбить запрос на несколько меньших. Если невозможно изменить конфигурацию сервера, то можно попробовать разбить запрос на несколько меньших, отправляя их последовательно.
Для исправления данной ошибки (если вы администратор веб-сервера Nginx) необходимо увеличить максимальный размер заголовка при помощи изменения параметра large_client_header_buffers. Если же вы обычный пользователь веб-сайта, на котором возникла данная ошибка то необходимо дождаться пока ошибку исправит администратор ресурса.
Корректировка со стороны веб-сервера Nginx
Вам нужно подкорректировать параметр large_client_header_buffers, который принимает 2 числа, например 4 и 8 (которые заданы по умолчанию). Первое число - значение, которое задаёт максимальное число буферов, а второе число отвечает за размер буфера, в который считывается заголовок запроса. В второй параметр задаётся в килобайтах.
Данную строку добавляем в секцию http конфигурационного файла конфигурационного файла Nginx или в секцию server для определённого сайта. Конфигурационные файлы веб-сайтов в Nginx обычно хранятся в /etc/nginx/conf.d/ или в /etc/nginx/sites-available/ (в зависимости каким образом был установлен Nginx - при помощи стандартных репозиториев операционной системы или при помощи репозитория Nginx).
Для корректировки значения можно задать числа 8 и 64 подходящие для хранения больших заголовков. Параметр будет выглядеть следующим образом:
large_client_header_buffers 8 64k;
Как только были внесены изменения в конфигурационный файл необходимо перезапустить Nginx при помощи команды:
sudo systemctl reload nginx
Вот такими методами устраняется данная проблема.
