Způsoby platby Abuse

Ошибка hlavička požadavku nebo soubor cookie je příliš velký Nginx

01.02.2024, 23:37

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

  1. 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.conf následující řádky.
  2. 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.
  3. 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í.
  4. Použijte požadavek 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.
  5. 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.