Nginxin"pyyntöotsikko tai eväste liian suuri
" -virhe ilmenee, kun pyyntöotsikoiden tai evästeiden koko ylittää palvelimen kokoonpanossa asetetun suurimman sallitun koon. Tässä artikkelissa analysoimme yksityiskohtaisesti, miksi näin tapahtuu.
Virhe ilmenee, kun HTTP/HTTPS-pyyntöotsikoiden koko ylittää sallitun rajan. Selain lähettää esimerkiksi liian monta evästettä tai verkkopalvelimelle lähetetty pyyntö on liian suuri.
Pyyntö on yleensä jaettu kahteen osaan: otsikkoihin - joissa sijaitsevat yleiset tiedot ja metatiedot - ja pyynnön runkoon. Pyynnön runko sekä otsikko voivat olla erikokoisia - sekä pieniä että suuria, eikä sen koko yleensä aiheuta ongelmia. Jos verkkopalvelimen asetuksissa on kuitenkin parametri, joka rajoittaa pyynnön otsikon pituutta, saat todennäköisesti tämän virheen.
Ongelman korjaamiseen on useita tapoja
nginx.conf-konfiguraatiotiedostoon
.POST-pyyntöä
GET-pyynnön
sijaan. Jos ongelma ilmenee lähetettäessä GET-pyyntöä
, jossa on suuria parametreja, voit kokeilla käyttää POST-pyyntöä
GET-pyynnön
sijasta.Korjataksesi tämän virheen (jos olet Nginx-verkkopalvelimen ylläpitäjä) sinun tulisi kasvattaa otsakkeiden enimmäiskokoa muuttamalla parametria large_client_header_buffers
. Jos olet tavallinen käyttäjä verkkosivustolla, jossa tämä virhe tapahtui, sinun pitäisi odottaa, kunnes resurssin ylläpitäjä korjaa virheen.
Sinun on säädettävä parametria large_client_header_buffers
, joka ottaa kaksi numeroa, esimerkiksi 4 ja 8 (jotka on asetettu oletusarvoisesti). Ensimmäinen numero on arvo, joka asettaa puskureiden enimmäismäärän, ja toinen numero on sen puskurin koko, johon pyynnön otsikko luetaan. Toinen parametri asetetaan kilotavuina.
Tämä rivi lisätään Nginxin asetustiedoston http-osioon tai tietyn sivuston palvelinosioon. Nginxin verkkosivuston konfiguraatiotiedostot tallennetaan yleensä tiedostoon /etc/nginx/conf.d/
tai /etc/nginx/sites-available/
(riippuen siitä, miten Nginx on asennettu - käyttöjärjestelmän tavallisten arkistojen avulla tai Nginxin arkiston avulla).
Voit säätää arvoa asettamalla numerot 8 ja 64, jotka sopivat suurten otsikoiden tallentamiseen. Parametri näyttää tältä:
large_client_header_buffers 8 64k;
Kun asetustiedostoon on tehty muutokset, Nginx on käynnistettävä uudelleen komennolla:
sudo systemctl reload nginx
Näillä menetelmillä tämä ongelma voidaan korjata.