Cuando administramos servidores con Nginx + PHP-FPM + WordPress, es habitual encontrarnos con advertencias en los logs como la siguiente:
[warn] 785#785: *923 an upstream response is buffered to a temporary file /var/lib/nginx/fastcgi/1/01/0000000011 while reading upstream, client: 00.00.00.00, server: example.com, request: "GET /wp-admin/load-styles.php?..."
Aunque no se trata de un error crítico, este mensaje indica que Nginx ha tenido que escribir parte de la respuesta de PHP en disco porque los buffers configurados en memoria no eran suficientes. Esto ocurre con frecuencia en el área de administración de WordPress (/wp-admin
), donde se cargan muchos estilos y scripts de manera simultánea.
¿Por qué ocurre este aviso?
Nginx recibe la respuesta de PHP-FPM a través del upstream FastCGI. Para manejar estas respuestas, utiliza buffers en memoria.
Si la respuesta es más grande de lo que cabe en los buffers definidos, Nginx la almacena temporalmente en disco, dentro de /var/lib/nginx/fastcgi/
.
Esto no interrumpe el servicio, pero:
- Aumenta la latencia (porque se accede a disco en lugar de memoria).
- Genera I/O adicional en el servidor.
- Puede degradar el rendimiento en sitios con mucho tráfico.
Soluciones técnicas
1. Ajustar los buffers de FastCGI en Nginx
Podemos ampliar la configuración de buffers para que la mayoría de respuestas se manejen directamente en memoria. En la configuración del bloque server
o location
de WordPress (normalmente en /etc/nginx/sites-available/
), añade:
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_busy_buffers_size 64k;
fastcgi_temp_file_write_size 64k;
Después recarga la configuración:
sudo systemctl reload nginx
Con esto reduciremos la necesidad de usar archivos temporales.
2. Optimizar la carga de scripts en WordPress
Otra medida complementaria es reducir la cantidad de CSS/JS cargados en el panel de administración. Plugins como:
- Asset CleanUp
- Perfmatters
permiten deshabilitar scripts y estilos que no son necesarios en ciertas páginas del dashboard.
3. Revisar memoria en PHP-FPM
Si además del aviso de Nginx se observan errores de PHP relacionados con memoria insuficiente, es recomendable revisar el límite configurado en php.ini
o en el pool de PHP-FPM (/etc/php/8.4/fpm/pool.d/www.conf
):
memory_limit = 256M
Un límite más alto puede ayudar a que PHP gestione mejor las peticiones pesadas de WordPress.
4. Verificar permisos de directorios temporales
Asegúrate de que Nginx puede escribir en el directorio de archivos temporales (/var/lib/nginx/fastcgi
). Normalmente los permisos están correctos tras la instalación, pero si se modificaron manualmente podrían causar problemas más serios.
Conclusión
El aviso “an upstream response is buffered to a temporary file” en Nginx no implica un fallo, pero sí es una señal de que las respuestas de PHP están siendo más grandes de lo previsto.
La combinación de ajustar los buffers de FastCGI, optimizar la carga de scripts de WordPress y revisar la configuración de PHP-FPM permite reducir la escritura en disco, mejorar la velocidad de respuesta y alargar la vida útil del servidor.