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.
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.
Existuje niekoľko spôsobov, ako tento problém odstrániť
nginx.conf
nasledujúce riadky.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
.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í.
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.