Cómo Purgar Automáticamente la Caché de Nginx en un Proxy Inverso

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

Para purgar la caché de Nginx en tu proxy inverso de manera automática, puedes usar varias estrategias. Aquí hay algunas opciones:

1. Configurar Expiración Automática (TTL)

Si solo necesitas que la caché se purgue automáticamente después de cierto tiempo, puedes configurar un proxy_cache_path con un inactive o max_size adecuados.

Ejemplo en tu configuración de Nginx:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache_zone:10m max_size=500m inactive=30m use_temp_path=off;
  • inactive=30m: Borra archivos no utilizados en 30 minutos.
  • max_size=500m: Elimina los archivos más antiguos cuando se alcanza este tamaño.

2. Purgar Caché con un Script y Cron Job

Si quieres eliminar manualmente la caché cada cierto tiempo, puedes usar un script en Bash y programarlo con cron.

a) Crear el Script de Purga

#!/bin/bash
CACHE_PATH="/var/cache/nginx"
rm -rf $CACHE_PATH/*
systemctl restart nginx

Guárdalo como /usr/local/bin/purge_nginx_cache.sh y dale permisos de ejecución:

chmod +x /usr/local/bin/purge_nginx_cache.sh

b) Programarlo en cron

Ejecuta crontab -e y añade esta línea para purgar cada hora:

0 * * * * /usr/local/bin/purge_nginx_cache.sh

3. Purgar Caché con HTTP PURGE

Si prefieres purgar solo archivos específicos sin borrar todo, puedes configurar Nginx para aceptar solicitudes PURGE.

a) Modificar Configuración de Nginx

Añade esto dentro de tu server {}:

location ~ /purge(/.*) {
allow 127.0.0.1; # O tu IP específica
deny all;
proxy_cache_purge cache_zone $1;
}

b) Enviar una Petición PURGE

Desde el servidor o una aplicación externa:

curl -X PURGE http://tudominio.com/purge/path/al/archivo