Come Svuotare la Cache di Nginx?

Pubblicato 27 agosto 2024

Problema: Accumulo della Cache di Nginx

Nginx, un popolare server web e proxy inverso, utilizza il caching per migliorare le prestazioni. Nel tempo, questa cache può accumulare dati vecchi o non necessari. Questo accumulo può causare tempi di risposta più lenti, maggiore utilizzo del disco e potenzialmente servire contenuti obsoleti agli utenti. Cancellare regolarmente la cache di Nginx è importante per mantenere buone prestazioni del server e fornire informazioni aggiornate.

Soluzione: Metodi per Cancellare la Cache di Nginx

Eliminazione Manuale dei File Cache dalla Directory della Cache

Per cancellare manualmente la cache di Nginx, individua la directory della cache nel file di configurazione di Nginx. Usa comandi del terminale per eliminare i file della cache. Ad esempio, usa "rm -rf /percorso/della/cache/*" per rimuovere tutti i file nella cartella della cache. Ferma Nginx prima di cancellare la cache per evitare problemi.

Riavvio del Server Nginx

Riavviare il server Nginx cancella la cache. Su Linux, usa "sudo systemctl restart nginx". Per macOS, usa "sudo nginx -s reload". Su Windows, riavvia Nginx tramite l'applicazione Servizi. Questo metodo cancella tutti i contenuti in cache ma può causare un'interruzione del sito web.

Utilizzo delle Opzioni di Configurazione di Nginx

Uso della Direttiva proxy_cache_bypass

La direttiva proxy_cache_bypass permette di bypassare la cache per richieste specifiche. Aggiungi la direttiva al tuo file di configurazione Nginx. Ad esempio, aggiungi "proxy_cache_bypass $http_cache_control;" per bypassare la cache quando un'intestazione specifica è presente nella richiesta.

Implementazione del Modulo Cache Purge

Il modulo Nginx Cache Purge consente di cancellare URL specifici dalla cache. Installa il modulo, poi configuralo nel tuo file di configurazione Nginx. Aggiungi un blocco di localizzazione per definire come gestire le richieste di purge. Questo metodo offre più controllo ma richiede configurazione aggiuntiva.

Tecniche Avanzate per Cancellare la Cache di Nginx

Automazione della Cancellazione della Cache con Script Shell

Per automatizzare la cancellazione della cache, crea uno script shell. Ecco un esempio:

#!/bin/bash
rm -rf /percorso/della/cache/nginx/*
nginx -s reload

Salva questo script con estensione .sh e rendilo eseguibile usando il comando chmod.

Per programmare le attività di cancellazione della cache, usa lo scheduler di cron job. Apri il file crontab con:

crontab -e

Aggiungi una riga per eseguire il tuo script a orari prestabiliti. Ad esempio, per cancellare la cache giornalmente a mezzanotte:

0 0 * * * /percorso/del/tuo/script.sh

Implementazione degli Header Cache-Control

Gli header Cache-Control aiutano a gestire come il contenuto viene memorizzato nella cache. Aggiungi questi header nella tua configurazione Nginx:

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

Questo esempio imposta il contenuto come pubblicamente memorizzabile in cache per un'ora.

Altre direttive Cache-Control utili includono:

  • no-cache: Richiede validazione prima di usare il contenuto in cache
  • no-store: Impedisce il caching di informazioni sensibili
  • must-revalidate: Controlla se il contenuto in cache è ancora valido prima dell'uso

Regola questi header in base alle tue esigenze di caching.