¿Cómo limpiar la caché de Nginx?

Publicado 27 de agosto de 2024

Problema: Acumulación de caché en Nginx

Nginx, un servidor web y proxy inverso común, utiliza el almacenamiento en caché para mejorar el rendimiento. Con el tiempo, esta caché puede acumular datos antiguos o innecesarios. Esta acumulación puede causar tiempos de respuesta más lentos, mayor uso del disco y posiblemente servir contenido obsoleto a los usuarios. Limpiar la caché de Nginx con frecuencia es importante para mantener un buen rendimiento del servidor y proporcionar información actualizada.

Solución: Métodos para limpiar la caché de Nginx

Eliminar manualmente los archivos de caché del directorio de caché

Para limpiar la caché de Nginx manualmente, localice el directorio de caché en su archivo de configuración de Nginx. Use comandos de terminal para eliminar los archivos de caché. Por ejemplo, use "rm -rf /ruta/a/cache/*" para eliminar todos los archivos en la carpeta de caché. Detenga Nginx antes de limpiar la caché para evitar problemas.

Reiniciar el servidor Nginx

Reiniciar el servidor Nginx limpia la caché. En Linux, use "sudo systemctl restart nginx". Para macOS, use "sudo nginx -s reload". En Windows, reinicie Nginx a través de la aplicación Servicios. Este método borra todo el contenido en caché pero puede causar tiempo de inactividad del sitio web.

Usar opciones de configuración de Nginx

Usar la directiva proxy_cache_bypass

La directiva proxy_cache_bypass le permite omitir la caché para solicitudes específicas. Agregue la directiva a su archivo de configuración de Nginx. Por ejemplo, agregue "proxy_cache_bypass $http_cache_control;" para omitir la caché cuando un encabezado específico está en la solicitud.

Implementar el módulo Cache Purge

El módulo Nginx Cache Purge permite limpiar URLs específicas de la caché. Instale el módulo, luego configúrelo en su archivo de configuración de Nginx. Agregue un bloque de ubicación para definir cómo manejar las solicitudes de purga. Este método ofrece más control pero requiere configuración adicional.

Técnicas avanzadas para limpiar la caché de Nginx

Automatizar la limpieza de caché con scripts de shell

Para automatizar la limpieza de caché, cree un script de shell. Aquí hay un ejemplo:

#!/bin/bash
rm -rf /ruta/a/nginx/cache/*
nginx -s reload

Guarde este script con una extensión .sh y hágalo ejecutable usando el comando chmod.

Para programar tareas de limpieza de caché, use el programador de tareas cron. Abra el archivo crontab con:

crontab -e

Agregue una línea para ejecutar su script en horarios establecidos. Por ejemplo, para limpiar la caché diariamente a medianoche:

0 0 * * * /ruta/a/su/script.sh

Implementar encabezados de control de caché

Los encabezados Cache-Control ayudan a gestionar cómo se almacena en caché el contenido. Agregue estos encabezados en su configuración de Nginx:

location / {
    add_header Cache-Control "public, max-age=3600";
}

Este ejemplo establece que el contenido sea almacenable en caché públicamente durante una hora.

Otras directivas útiles de Cache-Control incluyen:

  • no-cache: Requiere validación antes de usar contenido en caché
  • no-store: Evita el almacenamiento en caché de información sensible
  • must-revalidate: Verifica si el contenido en caché aún es válido antes de usarlo

Ajuste estos encabezados según sus necesidades de almacenamiento en caché.