Metodi di pagamento Abuse

Ошибка intestazione della richiesta o cookie troppo grandi Nginx

01.02.2024, 23:37

L'errore"request header or cookie too large" in Nginx si verifica quando la dimensione delle intestazioni delle richieste o dei cookie supera la dimensione massima consentita, impostata nella configurazione del server. In questo articolo analizzeremo in dettaglio perché ciò accade.

Cosa significa l'errore Request header o cookie too large in Nginx?

L'errore si verifica quando la dimensione delle intestazioni delle richieste HTTP/HTTPS supera il limite consentito. Ad esempio, il browser sta inviando troppi cookie o la richiesta inviata al server web è troppo grande.

La richiesta è solitamente divisa in due parti: le intestazioni, dove si trovano le informazioni generali e i meta-dati, e il corpo della richiesta. Il corpo della richiesta, così come l'intestazione, può essere di dimensioni diverse, sia piccole che grandi, e le sue dimensioni di solito non causano alcun problema. Tuttavia, se nelle impostazioni del server web è presente un parametro che limita la lunghezza dell'intestazione della richiesta, è probabile che si verifichi questo errore.

Come risolverlo?

Ci sono diversi modi per risolvere il problema

  1. Aumentare la dimensione massima delle intestazioni e dei cookie nella configurazione di Nginx. A tal fine, aggiungere le seguenti righe al file di configurazione nginx.conf.
  2. Cancellare i cookie del browser. Se il problema si verifica su un solo computer o dispositivo, cancellare i cookie del browser può essere utile.
  3. Utilizzare un altro browser o dispositivo. Se il problema si verifica solo su un browser o un dispositivo, provare a utilizzare un browser o un dispositivo diverso.
  4. Utilizzare una richiesta POST invece di GET. Se il problema si verifica quando si invia una richiesta GET con parametri di grandi dimensioni, si può provare a utilizzare una richiesta POST invece di GET.
  5. Dividere la richiesta in diverse richieste più piccole. Se non è possibile modificare la configurazione del server, si può provare a suddividere la richiesta in diverse richieste più piccole, inviandole in sequenza.

Per risolvere questo errore (se si è un amministratore del server web Nginx) è necessario aumentare la dimensione massima delle intestazioni modificando il parametro large_client_header_buffers. Se siete un utente comune del sito web in cui si è verificato l'errore, dovreste aspettare che l'amministratore della risorsa corregga l'errore.

Correzione da parte del server web Nginx

È necessario regolare il parametro large_client_header_buffers, che contiene due numeri, ad esempio 4 e 8 (che sono impostati per default). Il primo numero è il valore che imposta il numero massimo di buffer e il secondo numero è la dimensione del buffer in cui viene letta l'intestazione della richiesta. Il secondo parametro è impostato in kilobyte.

Questa riga viene aggiunta alla sezione http del file di configurazione di Nginx o alla sezione server di un particolare sito. I file di configurazione dei siti web di Nginx sono solitamente memorizzati in /etc/nginx/conf.d/ o /etc/nginx/sites-available/ (a seconda di come è stato installato Nginx, utilizzando i repository standard del sistema operativo o il repository di Nginx).

Per regolare il valore si possono impostare i numeri 8 e 64, adatti a memorizzare intestazioni di grandi dimensioni. Il parametro avrà il seguente aspetto:

large_client_header_buffers 8 64k;

Una volta apportate le modifiche al file di configurazione, è necessario riavviare Nginx utilizzando il comando:

sudo systemctl reload nginx

Questi sono i metodi per risolvere il problema.