Betalingsmåter Abuse

Ошибка forespørselshode eller informasjonskapsel for stor Nginx

01.02.2024, 23:37

Feilen"request header or cookie too large" i Nginx oppstår når størrelsen på forespørselshodene eller informasjonskapslene overskrider den maksimalt tillatte størrelsen, som er angitt i serverkonfigurasjonen. I denne artikkelen vil vi analysere i detalj hvorfor dette skjer.

Hva betyr feilen Request header or cookie too large i Nginx?

Feilen oppstår når størrelsen på HTTP/HTTPS-forespørselsoverskriftene overskrider den tillatte grensen. For eksempel sender nettleseren for mange informasjonskapsler, eller forespørselen som sendes til webserveren er for stor.

Forespørselen er vanligvis delt inn i to deler: overskrifter - der generell informasjon og metadata er plassert, og selve forespørselen. Forespørselsteksten og overskriftene kan være av ulik størrelse - både små og store, og størrelsen skaper vanligvis ingen problemer. Men hvis innstillingene på webserveren har en parameter som begrenser lengden på forespørselshodet, vil du sannsynligvis få denne feilen.

Hvordan fikser man det?

Det finnes flere måter å løse problemet på

  1. Øk den maksimale størrelsen på overskrifter og informasjonskapsler i Nginx-konfigurasjonen. Dette gjør du ved å legge til følgende linjer i konfigurasjonsfilen nginx.conf.
  2. Tøm informasjonskapsler i nettleseren. Hvis problemet bare oppstår på én datamaskin eller enhet, kan det hjelpe å tømme informasjonskapslene i nettleseren.
  3. Bruk en annen nettleser eller enhet. Hvis problemet bare oppstår på én nettleser eller enhet, kan du prøve å bruke en annen nettleser eller enhet.
  4. Bruk POST-forespørsel i stedet for GET. Hvis problemet oppstår når du sender en GET-forespørsel med store parametere, kan du prøve å bruke en POST-forespørsel i stedet for GET.
  5. Del opp forespørselen i flere mindre forespørsler. Hvis det ikke er mulig å endre serverkonfigurasjonen, kan du prøve å dele opp forespørselen i flere mindre forespørsler ved å sende dem sekvensielt.

For å løse denne feilen (hvis du er administrator av Nginx-webserveren) bør du øke den maksimale header-størrelsen ved å endre parameteren large_client_header_buffers. Hvis du er en vanlig bruker av nettstedet der denne feilen oppstod, bør du vente til administratoren av ressursen retter feilen.

Korrigering fra Nginx-webserverens side

Du må justere parameteren large_client_header_buffers, som tar to tall, for eksempel 4 og 8 (som er angitt som standard). Det første tallet er verdien som angir det maksimale antallet buffere, og det andre tallet er størrelsen på bufferen som forespørselshodet leses inn i. Den andre parameteren angis i kilobyte.

Denne linjen legges til i http-delen av Nginx-konfigurasjonsfilen eller i serverdelen for et bestemt nettsted. Konfigurasjonsfiler for Nginx-nettsteder lagres vanligvis i /etc/nginx/conf.d/ eller /etc/nginx/sites-available/ (avhengig av hvordan Nginx ble installert - ved hjelp av operativsystemets standarddepoter eller ved hjelp av Nginx-depotet).

For å justere verdien kan du angi tallene 8 og 64 som passer for lagring av store overskrifter. Parameteren vil se slik ut:

large_client_header_buffers 8 64k;

Når endringer er gjort i konfigurasjonsfilen, bør Nginx startes på nytt ved hjelp av kommandoen:

sudo systemctl reload nginx

Dette er metodene for å løse dette problemet.