Modes de paiement Abuse

Ошибка en-tête de requête ou cookie trop volumineux Nginx

01.02.2024, 23:37

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.

Que signifie l'erreur "Request header or cookie too large" dans Nginx ?

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.

Comment résoudre le problème ?

Il existe plusieurs façons de résoudre le problème

  1. Augmenter la taille maximale des en-têtes et des cookies dans la configuration de Nginx. Pour ce faire, ajoutez les lignes suivantes au fichier de configuration nginx.conf.
  2. Effacer les cookies du navigateur. Si le problème ne se produit que sur un seul ordinateur ou appareil, il peut être utile d'effacer les cookies du navigateur.
  3. Utilisez un autre navigateur ou appareil. Si le problème ne se produit que sur un seul navigateur ou appareil, essayez d'utiliser un autre navigateur ou appareil.
  4. Utilisez une requête 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.
  5. Divisez la demande en plusieurs requêtes plus petites. S'il est impossible de modifier la configuration du serveur, vous pouvez essayer de diviser la demande en plusieurs requêtes plus petites en les envoyant de manière séquentielle.

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.

Correction de la part du serveur web Nginx

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.