Felet"request header or cookie too large
" i Nginx uppstår när storleken på request headers eller cookies överskrider den maximalt tillåtna storleken, som anges i serverkonfigurationen. I den här artikeln analyserar vi i detalj varför detta händer.
Felet uppstår när storleken på HTTP/HTTPS-begärans rubriker överskrider den tillåtna gränsen. Det kan till exempel vara att webbläsaren skickar för många cookies eller att begäran som skickas till webbservern är för stor.
Begäran är vanligtvis uppdelad i två delar: rubriker - där allmän information och metadata finns, och begäran. Förfrågningsunderlaget och rubrikerna kan vara olika stora - både små och stora - och storleken på dem brukar inte orsaka några problem. Men om webbserverinställningarna har en parameter för att begränsa längden på begäran header, kommer du sannolikt att få detta fel.
Det finns flera sätt att åtgärda problemet
nginx.conf.
POST-begäran
i stället för GET
. Om problemet uppstår när du skickar en GET-begäran
med stora parametrar kan du prova att använda en POST-begäran
i stället för GET.
För att åtgärda detta fel (om du är administratör för Nginx webbserver) bör du öka den maximala storleken på sidhuvudet genom att ändra parametern large_client_header_buffers
. Om du är en vanlig användare av webbplatsen där detta fel inträffade bör du vänta tills administratören av resursen korrigerar felet.
Du måste justera parametern large_client_header_buffers
, som har två siffror, till exempel 4 och 8 (som är standardinställda). Det första talet är det värde som anger det maximala antalet buffertar, och det andra talet är storleken på den buffert som request-headern läses in i. Den andra parametern anges i kilobyte.
Den här raden läggs till i http-avsnittet i konfigurationsfilen för Nginx eller i serveravsnittet för en viss webbplats. Konfigurationsfilerna för Nginx webbplats lagras vanligtvis i /etc/nginx/conf
.d/ eller /etc/nginx/sites-available/
(beroende på hur Nginx installerades - med hjälp av operativsystemets standardarkiv eller med hjälp av Nginx arkiv).
För att justera värdet kan du ställa in siffrorna 8 och 64 som är lämpliga för lagring av stora rubriker. Parametern kommer att se ut så här:
large_client_header_buffers 8 64k;
När ändringar har gjorts i konfigurationsfilen bör Nginx startas om med hjälp av kommandot:
sudo systemctl reload nginx
Detta är metoderna för att åtgärda detta problem.