Eroarea"request header or cookie too large
" în Nginx apare atunci când dimensiunea antetelor de cerere sau a cookie-urilor depășește dimensiunea maximă permisă, care este stabilită în configurația serverului. În acest articol vom analiza în detaliu de ce se întâmplă acest lucru.
Eroarea apare atunci când dimensiunea antetelor de solicitare HTTP/HTTPS depășește limita permisă. De exemplu, browserul trimite prea multe cookie-uri sau solicitarea trimisă către serverul web este prea mare.
Solicitarea este de obicei împărțită în două părți: antetele - unde se află informațiile generale și metadatele, și corpul solicitării. Corpul cererii, precum și antetul pot avea dimensiuni diferite - atât mici, cât și mari, iar dimensiunea sa nu cauzează, de obicei, probleme. Cu toate acestea, dacă setările serverului web au un parametru de limitare a lungimii antetului cererii, este posibil să primiți această eroare.
Există mai multe modalități de rezolvare a problemei
nginx.conf
.POST
în loc de GET
. Dacă problema apare atunci când trimiteți o cerere GET
cu parametri mari, puteți încerca să utilizați o cerere POST
în loc de GET
.Pentru a remedia această eroare (dacă sunteți administrator al serverului web Nginx) trebuie să măriți dimensiunea maximă a antetului prin modificarea parametrului large_client_header_buffers
. Dacă sunteți un utilizator obișnuit al site-ului web unde a apărut această eroare, ar trebui să așteptați până când administratorul resursei corectează eroarea.
Trebuie să ajustați parametrul large_client_header_buffers
, care ia 2 numere, de exemplu 4 și 8 (care sunt setate implicit). Primul număr este valoarea care stabilește numărul maxim de tampoane, iar al doilea număr este dimensiunea tamponului în care este citit antetul cererii. Al doilea parametru este stabilit în kilobytes.
Această linie este adăugată la secțiunea http a fișierului de configurare Nginx sau la secțiunea server pentru un anumit site. Fișierele de configurare a site-ului Nginx sunt de obicei stocate în /etc/nginx/conf.d/
sau /etc/nginx/sites-available/
(în funcție de modul în care a fost instalat Nginx - folosind depozitele standard ale sistemului de operare sau folosind depozitul Nginx).
Pentru a ajusta valoarea, puteți seta numerele 8 și 64 potrivite pentru stocarea antetelor mari. Parametrul va arăta astfel:
large_client_header_buffers 8 64k;
Odată ce au fost efectuate modificări în fișierul de configurare, Nginx trebuie repornit utilizând comanda:
sudo systemctl reload nginx
Acestea sunt metodele de rezolvare a acestei probleme.