Icono del sitio Binario 0

Cómo solucionar el error "proxy_buffer_size is not enough for cache key" en Nginx

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Al configurar Nginx como proxy inverso con caché (por ejemplo, delante de Apache o PHP-FPM para aplicaciones como WordPress), uno de los problemas más frecuentes es encontrarse con errores relacionados con el tamaño de los buffers.

Un mensaje típico en los registros de Nginx es:

proxy_buffer_size 8192 is not enough for cache key, it should be increased to at least 11264

Este error indica que el espacio de memoria asignado para construir la clave de caché no es suficiente y está siendo truncado.

¿Qué significa este error?

Nginx utiliza un parámetro llamado proxy_cache_key para definir la clave única de cada objeto cacheado. Esa clave puede incluir:

Cuando la clave es demasiado larga (por ejemplo, URLs con muchos parámetros o configuraciones personalizadas de caché), el buffer de cabeceras (proxy_buffer_size) puede quedarse corto.

Por defecto, Nginx asigna 8 KB (8192 bytes) en arquitecturas de 64 bits y 4 KB en 32 bits. Si la clave supera ese tamaño, aparece el error.

Parámetros implicados

Los principales parámetros de configuración relacionados son:

Solución

El mensaje de error indica explícitamente el tamaño mínimo requerido. En el ejemplo, se necesita 11264 bytes, por lo que aumentar proxy_buffer_size a 16k soluciona el problema.

Ejemplo de configuración:

http {
    # Buffer para cabeceras y cache key
    proxy_buffer_size 16k;

    # Número y tamaño de buffers para las respuestas del backend
    proxy_buffers 8 16k;

    # Tamaño máximo de buffers ocupados simultáneamente
    proxy_busy_buffers_size 32k;

    # ... resto de configuración ...
}

Pasos para aplicar cambios

  1. Editar el archivo de configuración principal de Nginx (/etc/nginx/nginx.conf o /etc/nginx/conf.d/*.conf).
  2. Añadir o modificar las directivas anteriores en el bloque http {} o server {}.
  3. Verificar la sintaxis de la configuración:

    nginx -t
  4. Recargar Nginx sin interrumpir el servicio:

    systemctl reload nginx

Buenas prácticas

Conclusión

El error "proxy_buffer_size is not enough for cache key" ocurre porque el tamaño por defecto de los buffers de Nginx no es suficiente para claves de caché largas.

La solución es simple: aumentar proxy_buffer_size a 16k o más, y ajustar también proxy_buffers y proxy_busy_buffers_size para mantener coherencia. De esta forma, Nginx podrá manejar claves más largas sin truncarlas y la caché funcionará de manera óptima.

Salir de la versión móvil