Начини на плащане Abuse

Заглавието на заявката или "бисквитката" са твърде големи Nginx

01.02.2024, 23:37

Грешката"заглавието на заявката или "бисквитката" е твърде голяма" в Nginx се появява, когато размерът на заглавията на заявките или на "бисквитките" надхвърля максимално допустимия размер, който е зададен в конфигурацията на сървъра. В тази статия ще анализираме подробно защо се случва това.

Какво означава грешката "Request header or cookie too large" в Nginx?

Грешката се появява, когато размерът на HTTP/HTTPS заглавията на заявките надхвърли позволеното ограничение. Например браузърът изпраща твърде много бисквитки или заявката, изпратена до уеб сървъра, е твърде голяма.

Заявката обикновено се разделя на две части: заглавия - където се намират общата информация и метаданните, и тяло на заявката. Тялото на заявката, както и хедърът, могат да бъдат с различни размери - както малки, така и големи, като размерът им обикновено не създава проблеми. Ако обаче в настройките на уеб сървъра има параметър за ограничаване на дължината на заглавието на заявката, вероятно ще получите тази грешка.

Как да я поправите?

Съществуват няколко начина за отстраняване на проблема

  1. Увеличете максималния размер на заглавията и бисквитките в конфигурацията на Nginx. За да направите това, добавете следните редове към конфигурационния файл nginx.conf.
  2. Изчистете бисквитките на браузъра. Ако проблемът възниква само на един компютър или устройство, изчистването на бисквитките на браузъра може да помогне.
  3. Използвайте друг браузър или устройство. Ако проблемът възниква само на един браузър или устройство, опитайте да използвате друг браузър или устройство.
  4. Използвайте POST заявка вместо GET. Ако проблемът възниква при изпращане на GET заявка с големи параметри, можете да опитате да използвате POST заявка вместо GET.
  5. Разделете заявката на няколко по-малки заявки. Ако е невъзможно да промените конфигурацията на сървъра, можете да опитате да разделите заявката на няколко по-малки заявки, като ги изпратите последователно.

За да отстраните тази грешка (ако сте администратор на уеб сървъра 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

Това са методите за отстраняване на този проблем.