"
Nginx" klaida"per didelė užklausos antraštė arba slapukas
" atsiranda, kai užklausos antraštės arba slapuko dydis viršija didžiausią leistiną dydį, nustatytą serverio konfigūracijoje. Šiame straipsnyje išsamiai išanalizuosime, kodėl taip nutinka.
Klaida atsiranda, kai HTTP/HTTPS užklausos antraštės dydis viršija leistiną ribą. Pavyzdžiui, naršyklė siunčia per daug slapukų arba žiniatinklio serveriui siunčiama užklausa yra per didelė.
Užklausą paprastai sudaro dvi dalys: antraštės - jose pateikiama bendroji informacija ir meta duomenys, ir užklausos kūnas. Užklausos kūnas, kaip ir antraštė, gali būti įvairaus dydžio - ir mažas, ir didelis, o jo dydis paprastai nesukelia jokių problemų. Tačiau jei žiniatinklio serverio nustatymuose yra parametras, kuriuo ribojamas užklausos antraštės ilgis, tikėtina, kad gausite šią klaidą.
Yra keletas būdų, kaip išspręsti šią problemą
nginx.conf
įrašykite šias eilutes.POST
užklausą vietoj GET
. Jei problema kyla siunčiant GET
užklausą su dideliais parametrais, galite pabandyti naudoti ne GET
, o POST
užklausą.Norėdami ištaisyti šią klaidą (jei esate "Nginx" žiniatinklio serverio administratorius), turėtumėte padidinti didžiausią antraštės dydį pakeisdami parametrą large_client_header_buffers
. Jei esate paprastas svetainės, kurioje įvyko ši klaida, naudotojas, turėtumėte palaukti, kol išteklių administratorius ištaisys klaidą.
Reikia pakoreguoti parametrą large_client_header_buffers
, kuriam reikalingi 2 skaičiai, pavyzdžiui, 4 ir 8 (kurie nustatyti pagal nutylėjimą). Pirmasis skaičius yra reikšmė, nustatanti didžiausią buferių skaičių, o antrasis skaičius yra buferio, į kurį skaitoma užklausos antraštė, dydis. Antrasis parametras nustatomas kilobaitais.
Ši eilutė įtraukiama į "Nginx" konfigūracijos failo http skirsnį arba į konkrečios svetainės serverio skirsnį. Paprastai "Nginx" svetainių konfigūracijos failai saugomi /etc/nginx/conf.d/
arba /etc/nginx/sites-available/
(priklausomai nuo to, kaip buvo įdiegta "Nginx" - naudojant standartines operacinės sistemos saugyklas arba naudojant "Nginx" saugyklą).
Norint sureguliuoti reikšmę, galima nustatyti skaičius 8 ir 64, tinkamus didelėms antraštėms saugoti. Parametras atrodys taip:
large_client_header_buffers 8 64k;
Atlikus konfigūracijos failo pakeitimus, "Nginx" reikia paleisti iš naujo naudojant komandą:
sudo systemctl reload nginx
Tai yra šios problemos sprendimo būdai.
Apply the discount by inserting the promo code in the special field at checkout:
Apply the discount by inserting the promo code in the special field at checkout: