Métodos de pago Abuse

Ошибка cabecera de petición o cookie demasiado grande Nginx

01.02.2024, 23:37

El error"request header or cookie too large" en Nginx se produce cuando el tamaño de las cabeceras de las peticiones o de las cookies excede el tamaño máximo permitido, establecido en la configuración del servidor. En este artículo analizaremos en detalle por qué ocurre esto.

Qué significa el error Request header or cookie too large en Nginx

El error se produce cuando el tamaño de las cabeceras de petición HTTP/HTTPS excede el límite permitido. Por ejemplo, el navegador está enviando demasiadas cookies o la petición enviada al servidor web es demasiado grande.

La petición suele dividirse en dos partes: las cabeceras -donde se encuentra la información general y los metadatos- y el cuerpo de la petición. El cuerpo de la petición, al igual que la cabecera, puede ser de diferentes tamaños - tanto pequeño como grande y su tamaño no suele causar ningún problema. Sin embargo, si la configuración del servidor web tiene un parámetro para limitar la longitud de la cabecera de la petición, es probable que obtenga este error.

¿Cómo solucionarlo?

Hay varias formas de solucionar el problema

  1. Aumente el tamaño máximo de las cabeceras y las cookies en la configuración de Nginx. Para ello, añada las siguientes líneas al archivo de configuración nginx.conf.
  2. Borre las cookies del navegador. Si el problema se produce sólo en un ordenador o dispositivo, borrar las cookies del navegador puede ayudar.
  3. Utilice otro navegador o dispositivo. Si el problema sólo se produce en un navegador o dispositivo, pruebe a utilizar otro navegador o dispositivo.
  4. Utilice una solicitud POST en lugar de GET. Si el problema se produce al enviar una solicitud GET con parámetros grandes, puede probar a utilizar una solicitud POST en lugar de GET.
  5. Divida la solicitud en varias solicitudes más pequeñas. Si es imposible cambiar la configuración del servidor, puede intentar dividir la solicitud en varias solicitudes más pequeñas enviándolas secuencialmente.

Para solucionar este error (si es administrador del servidor web Nginx) debe aumentar el tamaño máximo de las cabeceras cambiando el parámetro large_client_header_buffers. Si usted es un usuario normal del sitio web donde se ha producido este error, debe esperar hasta que el administrador del recurso corrija el error.

Corrección por parte del servidor web Nginx

Es necesario ajustar el parámetro large_client_header_buffers, que toma 2 números, por ejemplo 4 y 8 (que están establecidos por defecto). El primer número es el valor que establece el número máximo de buffers, y el segundo número es el tamaño del buffer en el que se lee la cabecera de la petición. El segundo parámetro se establece en kilobytes.

Esta línea se añade a la sección http del archivo de configuración de Nginx o a la sección del servidor para un sitio en particular. Los archivos de configuración de sitios web de Nginx suelen almacenarse en /etc/nginx/conf.d/ o /etc/nginx/sites-available/ (dependiendo de cómo se instaló Nginx: usando los repositorios estándar del sistema operativo o usando el repositorio de Nginx).

Para ajustar el valor puedes poner los números 8 y 64 adecuados para almacenar cabeceras grandes. El parámetro tendrá este aspecto:

large_client_header_buffers 8 64k;

Una vez realizados los cambios en el archivo de configuración, Nginx debe reiniciarse utilizando el comando:

sudo systemctl reload nginx

Estos son los métodos para solucionar este problema.