Betalningsmetoder Abuse

Ошибка begäran header eller cookie för stor Nginx

  • Hem
  • Kunskapsbas
  • Ошибка begäran header eller cookie för stor Nginx
01.02.2024, 23:37

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.

Vad betyder felet Request header eller cookie too large i Nginx

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.

Hur åtgärdar man det?

Det finns flera sätt att åtgärda problemet

  1. Öka den maximala storleken på headers och cookies i Nginx-konfigurationen. Detta gör du genom att lägga till följande rader i konfigurationsfilen nginx.conf.
  2. Rensa webbläsarens cookies. Om problemet bara uppstår på en dator eller enhet kan det hjälpa att rensa webbläsarens cookie.
  3. Använd en annan webbläsare eller enhet. Om problemet bara uppstår på en webbläsare eller enhet kan du prova att använda en annan webbläsare eller enhet.
  4. Använd 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.
  5. Dela upp förfrågan i flera mindre förfrågningar. Om det är omöjligt att ändra serverkonfigurationen kan du försöka dela upp begäran i flera mindre begäranden genom att skicka dem sekventiellt.

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.

Korrigering från Nginx webbserver

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.