L'erreur"request header or cookie too large
" (en-tête de
requête oucookie trop volumineux
) dans Nginx se produit lorsque la taille des en-têtes de requête ou des cookies dépasse la taille maximale autorisée, qui est définie dans la configuration du serveur. Dans cet article, nous analyserons en détail les raisons de cette erreur.
L'erreur se produit lorsque la taille des en-têtes de requête HTTP/HTTPS dépasse la limite autorisée. Par exemple, le navigateur envoie trop de cookies ou la requête envoyée au serveur web est trop volumineuse.
La requête est généralement divisée en deux parties : les en-têtes - où se trouvent les informations générales et les métadonnées - et le corps de la requête. Le corps de la requête, tout comme l'en-tête, peut être de taille différente - petite ou grande - et sa taille ne pose généralement pas de problème. Toutefois, si les paramètres du serveur web prévoient une limitation de la longueur de l'en-tête de la requête, vous risquez d'obtenir cette erreur.
Il existe plusieurs façons de résoudre le problème
nginx.conf.
POST
au lieu d'une requête GET
. Si le problème survient lors de l'envoi d'une requête GET
avec des paramètres importants, vous pouvez essayer d'utiliser une requête POST
au lieu de GET
.Pour corriger cette erreur (si vous êtes un administrateur du serveur web Nginx), vous devez augmenter la taille maximale des en-têtes en modifiant le paramètre large_client_header_buffers
. Si vous êtes un utilisateur ordinaire du site web où cette erreur s'est produite, vous devez attendre que l'administrateur de la ressource corrige l'erreur.
Vous devez ajuster le paramètre large_client_header_buffers
, qui prend deux nombres, par exemple 4 et 8 (qui sont définis par défaut). Le premier nombre est la valeur qui définit le nombre maximal de tampons, et le second est la taille du tampon dans lequel l'en-tête de la requête est lu. Le second paramètre est défini en kilo-octets.
Cette ligne est ajoutée à la section http du fichier de configuration de Nginx ou à la section serveur pour un site particulier. Les fichiers de configuration du site web de Nginx sont généralement stockés dans /etc/nginx/conf.d/
ou /etc/nginx/sites-available/
(en fonction de la manière dont Nginx a été installé - en utilisant les référentiels standard du système d'exploitation ou en utilisant le référentiel de Nginx).
Pour ajuster la valeur, vous pouvez fixer les nombres 8 et 64, qui conviennent au stockage d'en-têtes volumineux. Le paramètre se présente comme suit :
large_client_header_buffers 8 64k;
Une fois les modifications apportées au fichier de configuration, Nginx doit être redémarré à l'aide de la commande :
sudo systemctl reload nginx
Voici les méthodes pour résoudre ce problème.