Error decode JSON exrate Ошибка pieprasījuma galvene vai sīkfails ir pārāk liels Nginx
Maksājuma metodes Abuse

Ошибка pieprasījuma galvene vai sīkfails ir pārāk liels Nginx

01.02.2024, 23:37

Kļūda"pieprasījuma galvene vai sīkfails ir pārāk liels" Nginx sistēmā rodas, ja pieprasījuma galvenes vai sīkfaila izmērs pārsniedz maksimālo atļauto izmēru, kas ir iestatīts servera konfigurācijā. Šajā rakstā mēs detalizēti analizēsim, kāpēc tā notiek.

Ko nozīmē "Request header or cookie too large" kļūda Nginx?

Kļūda rodas, ja HTTP/HTTPS pieprasījuma galvenes lielums pārsniedz atļauto limitu. Piemēram, pārlūkprogramma nosūta pārāk daudz sīkfailu vai tīmekļa serverim nosūtītais pieprasījums ir pārāk liels.

Pieprasījums parasti ir sadalīts divās daļās: galvenēs, kurās atrodas vispārīga informācija un meta dati, un pieprasījuma ķermenī. Pieprasījuma ķermenis, tāpat kā galvene, var būt dažāda lieluma - gan mazs, gan liels, un tā lielums parasti nerada problēmas. Tomēr, ja tīmekļa servera iestatījumos ir parametrs, kas ierobežo pieprasījuma galvenes garumu, visticamāk, tiks pieļauta šī kļūda.

Kā to novērst?

Ir vairāki veidi, kā novērst šo problēmu

  1. Palieliniet maksimālo galvenes un sīkfailu izmēru Nginx konfigurācijā. Lai to izdarītu, pievienojiet nginx.conf konfigurācijas failā šādas rindas.
  2. Notīriet pārlūkprogrammas sīkfailus. Ja problēma rodas tikai vienā datorā vai ierīcē, var palīdzēt pārlūkprogrammas sīkfailu dzēšana.
  3. Izmantojiet citu pārlūkprogrammu vai ierīci. Ja problēma rodas tikai vienā pārlūkprogrammā vai ierīcē, mēģiniet izmantot citu pārlūkprogrammu vai ierīci.
  4. GET vietā izmantojiet POST pieprasījumu. Ja problēma rodas, nosūtot GET pieprasījumu ar lieliem parametriem, varat mēģināt GET vietā izmantot POST pieprasījumu.
  5. Sadaliet pieprasījumu vairākos mazākos pieprasījumos. Ja nav iespējams mainīt servera konfigurāciju, varat mēģināt sadalīt pieprasījumu vairākos mazākos pieprasījumos, nosūtot tos secīgi.

Lai novērstu šo kļūdu (ja esat Nginx tīmekļa servera administrators), ir jāpalielina maksimālais galvenes lielums, mainot parametru large_client_header_buffers. Ja esat parasts tīmekļa vietnes, kurā radusies šī kļūda, lietotājs, jums jāgaida, kamēr resursa administrators kļūdu novērsīs.

Labojums no Nginx tīmekļa servera puses

Jums ir jānoregulē parametrs large_client_header_buffers, kurā ir divi skaitļi, piemēram, 4 un 8 (kas ir iestatīti pēc noklusējuma). Pirmais skaitlis ir vērtība, kas nosaka maksimālo buferu skaitu, un otrais skaitlis ir bufera lielums, kurā tiek nolasīta pieprasījuma galvene. Otrais parametrs tiek iestatīts kilobaitos.

Šo rindu pievieno Nginx konfigurācijas faila http sadaļai vai konkrētas vietnes servera sadaļai. Nginx vietnes konfigurācijas faili parasti tiek glabāti /etc/nginx/conf.d/ vai /etc/nginx/sites-available/ (atkarībā no tā, kā Nginx tika instalēts - izmantojot standarta operētājsistēmas repozitorijus vai izmantojot Nginx repozitoriju).

Lai pielāgotu vērtību, varat iestatīt skaitļus 8 un 64, kas piemēroti lielu galvenu glabāšanai. Parametrs izskatīsies šādi:

large_client_header_buffers 8 64k;

Pēc izmaiņu veikšanas konfigurācijas failā Nginx ir jārestartē, izmantojot komandu:

sudo systemctl reload nginx

Šīs ir metodes, kā novērst šo problēmu.