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