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í.
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.
Existuje několik způsobů, jak problém vyřešit
nginx.conf
následující řádky.POST
místo GET
. Pokud k problému dochází při odesílání požadavku GET
s velkými parametry, můžete zkusit místo požadavku GET
použít požadavek POST
.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í.
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.