Spôsoby platby Abuse

Príliš veľká hlavička požiadavky alebo súbor cookie Nginx

01.02.2024, 23:37

Chyba"hlavička požiadavky alebo súbor cookie je príliš veľký" v systéme Nginx sa vyskytne, keď veľkosť hlavičiek požiadaviek alebo súborov cookie prekročí maximálnu povolenú veľkosť, ktorá je nastavená v konfigurácii servera. V tomto článku podrobne analyzujeme, prečo k tomu dochádza.

Čo znamená chyba hlavičky požiadavky alebo súboru cookie príliš veľká v systéme Nginx?

Táto chyba nastane, keď veľkosť hlavičiek požiadaviek HTTP/HTTPS prekročí povolený limit. Napríklad prehliadač odosiela príliš veľa súborov cookie alebo požiadavka odoslaná webovému serveru je príliš veľká.

Požiadavka sa zvyčajne delí na dve časti: hlavičky - kde sa nachádzajú všeobecné informácie a metaúdaje, a telo požiadavky. Telo požiadavky, rovnako ako hlavička, môže mať rôznu veľkosť - malú aj veľkú a jeho veľkosť zvyčajne nespôsobuje žiadne problémy. Ak však nastavenia webového servera obsahujú parameter na obmedzenie dĺžky hlavičky požiadavky, pravdepodobne sa zobrazí táto chyba.

Ako ju opraviť?

Existuje niekoľko spôsobov, ako tento problém odstrániť

  1. Zvýšte maximálnu veľkosť hlavičiek a súborov cookie v konfigurácii Nginx. Ak to chcete urobiť, pridajte do konfiguračného súboru nginx.conf nasledujúce riadky.
  2. Vymažte súbory cookie prehliadača. Ak sa problém vyskytuje len na jednom počítači alebo zariadení, môže pomôcť vymazanie súborov cookie prehliadača.
  3. Použite iný prehliadač alebo zariadenie. Ak sa problém vyskytuje len v jednom prehliadači alebo zariadení, skúste použiť iný prehliadač alebo zariadenie.
  4. Namiesto požiadavky GET použite požiadavku POST. Ak sa problém vyskytuje pri odosielaní požiadavky GET s veľkými parametrami, môžete skúsiť použiť požiadavku POST namiesto GET.
  5. Rozdeľte požiadavku na niekoľko menších požiadaviek. Ak nie je možné zmeniť konfiguráciu servera, môžete skúsiť rozdeliť požiadavku na niekoľko menších požiadaviek ich postupným odosielaním.

Na odstránenie tejto chyby (ak ste správcom webového servera Nginx) by ste mali zvýšiť maximálnu veľkosť hlavičky zmenou parametra large_client_header_buffers. Ak ste bežný používateľ webovej lokality, na ktorej sa táto chyba vyskytla, mali by ste počkať, kým správca zdroja chybu opraví.

Oprava zo strany webového servera Nginx

Je potrebné upraviť parameter large_client_header_buffers, ktorý preberá 2 čísla, napríklad 4 a 8 (ktoré sú nastavené v predvolenom nastavení). Prvé číslo je hodnota, ktorá nastavuje maximálny počet vyrovnávacích pamätí, a druhé číslo je veľkosť vyrovnávacej pamäte, do ktorej sa načíta hlavička požiadavky. Druhý parameter sa nastavuje v kilobajtoch.

Tento riadok sa pridáva do časti http konfiguračného súboru Nginx alebo do časti servera pre konkrétnu lokalitu. Konfiguračné súbory webových stránok Nginx sú zvyčajne uložené v súbore /etc/nginx/conf.d/ alebo /etc/nginx/sites-available/ (v závislosti od toho, ako bol Nginx nainštalovaný - pomocou štandardných úložísk operačného systému alebo pomocou úložiska Nginx).

Na úpravu hodnoty môžete nastaviť čísla 8 a 64 vhodné na ukladanie veľkých hlavičiek. Parameter bude vyzerať takto:

large_client_header_buffers 8 64k;

Po vykonaní zmien v konfiguračnom súbore by sa mal Nginx reštartovať pomocou príkazu:

sudo systemctl reload nginx

Toto sú metódy na odstránenie tohto problému.