K chybě"příliš velká hlavička požadavku nebo soubor cookie" v systému Nginx dochází, když velikost hlaviček požadavků nebo souborů cookie překročí maximální povolenou velikost, která je nastavena v konfiguraci serveru. V tomto článku podrobně rozebereme, proč k tomu dochází.
Co znamená chyba "Request header or cookie too large" v Nginxu?
Chyba nastane, když velikost hlaviček požadavků HTTP/HTTPS překročí povolený limit. Například prohlížeč odesílá příliš mnoho souborů cookie nebo je požadavek odeslaný na webový server příliš velký.

Požadavek se obvykle dělí na dvě části: hlavičky - v nich se nacházejí obecné informace a metadata, a tělo požadavku. Tělo požadavku, stejně jako hlavička, může být různě velké - malé i velké a jeho velikost obvykle nezpůsobuje žádné problémy. Pokud však nastavení webového serveru obsahuje parametr omezující délku hlavičky požadavku, pravděpodobně se zobrazí tato chyba.
Jak ji opravit?
Existuje několik způsobů, jak problém vyřešit
- Zvyšte maximální velikost hlaviček a souborů cookie v konfiguraci Nginx. Za tímto účelem přidejte do konfiguračního souboru
nginx.confnásledující řádky. - Vymažte soubory cookie prohlížeče. Pokud se problém vyskytuje pouze na jednom počítači nebo zařízení, může pomoci vymazání souborů cookie prohlížeče.
- Použijte jiný prohlížeč nebo zařízení. Pokud se problém vyskytuje pouze v jednom prohlížeči nebo zařízení, zkuste použít jiný prohlížeč nebo zařízení.
- Použijte požadavek
POSTmístoGET. Pokud k problému dochází při odesílání požadavkuGETs velkými parametry, můžete zkusit místo požadavkuGETpoužít požadavekPOST. - Rozdělte požadavek na několik menších požadavků. Pokud není možné změnit konfiguraci serveru, můžete zkusit rozdělit požadavek na několik menších požadavků jejich postupným odesláním.
Chcete-li tuto chybu odstranit (pokud jste správcem webového serveru Nginx), měli byste zvýšit maximální velikost hlavičky změnou parametru large_client_header_buffers. Jste-li běžným uživatelem webové stránky, na které se tato chyba vyskytla, měli byste počkat, až správce zdroje chybu opraví.
Oprava ze strany webového serveru Nginx
Je třeba upravit parametr large_client_header_buffers, který nabývá dvou čísel, například 4 a 8 (která jsou nastavena ve výchozím nastavení). První číslo je hodnota, která nastavuje maximální počet vyrovnávacích pamětí, a druhé číslo je velikost vyrovnávací paměti, do které se načítá hlavička požadavku. Druhý parametr se nastavuje v kilobajtech.
Tento řádek se přidává do části http konfiguračního souboru Nginx nebo do části serveru pro konkrétní web. Konfigurační soubory webu Nginx jsou obvykle uloženy v adresáři /etc/nginx/conf.d/ nebo /etc/nginx/sites-available/ (podle toho, jak byl Nginx nainstalován - pomocí standardních úložišť operačního systému nebo pomocí úložiště Nginx).
Pro úpravu hodnoty můžete nastavit čísla 8 a 64 vhodná pro ukládání velkých hlaviček. Parametr bude vypadat takto:
large_client_header_buffers 8 64k;
Po provedení změn v konfiguračním souboru je třeba Nginx restartovat pomocí příkazu:
sudo systemctl reload nginx
Toto jsou metody, jak tento problém odstranit.
