Грешката"заглавието на заявката или "бисквитката" е твърде голяма" в Nginx се появява, когато размерът на заглавията на заявките или на "бисквитките" надхвърля максимално допустимия размер, който е зададен в конфигурацията на сървъра. В тази статия ще анализираме подробно защо се случва това.
Какво означава грешката "Request header or cookie too large" в Nginx?
Грешката се появява, когато размерът на HTTP/HTTPS заглавията на заявките надхвърли позволеното ограничение. Например браузърът изпраща твърде много бисквитки или заявката, изпратена до уеб сървъра, е твърде голяма.

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