Varnish
Varnish è un acceleratore HTTP che funziona come cache reverse proxy. Memorizza le risposte dei server backend e le serve direttamente agli utenti, riducendo drasticamente i tempi di risposta e il carico sui server.
Cos'è Varnish
Varnish Cache è progettato per:
- Accelerare i siti web memorizzando le pagine in memoria
- Ridurre il carico sui server backend (Nginx, PHP, etc.)
- Gestire picchi di traffico servendo contenuti dalla cache
- Migliorare i tempi di risposta con latenze nell'ordine dei millisecondi
Configurazione Base
| Campo | Descrizione |
|---|---|
| Enabled | Attiva o disabilita Varnish |
| Version | Versione di Varnish da utilizzare |
Configurazione Docker
| Campo | Descrizione |
|---|---|
| CPU Cores Limit | Limite CPU per il container |
| Memory Limit (MB) | Limite memoria per il container (importante: determina la dimensione della cache) |
Nota: La memoria allocata a Varnish determina quanti contenuti possono essere mantenuti in cache. Maggiore è la memoria, più contenuti possono essere cachati.
File di Configurazione
| File | Descrizione |
|---|---|
| default.vcl | Configurazione VCL principale con le regole di caching |
| disabled.vcl | Configurazione VCL per bypassare la cache (modalità passthrough) |
| Dockerfile | File Docker per la build dell'immagine |
default.vcl
Il file default.vcl contiene la configurazione principale:
- Regole di caching per URL e contenuti
- Backend server configuration
- TTL (Time To Live) per i contenuti cachati
- Gestione di headers e cookies
- Regole di purge per invalidare la cache
Quando Usare Varnish
Varnish è ideale per:
- Siti ad alto traffico con contenuti che cambiano poco frequentemente
- Blog e siti di notizie con molte visite alle stesse pagine
- E-commerce per le pagine prodotto e categorie
- API con risposte che possono essere cachate
Best Practices
- Imposta memoria adeguata: Più memoria significa più contenuti in cache
- Configura TTL appropriati: Bilancia freschezza dei contenuti e performance
- Escludi le aree autenticate: Non cachare pagine con sessioni utente
- Monitora gli HIT rate: Un buon HIT rate è sopra 80-90%
- Usa Varnish solo in produzione: In sviluppo può complicare il debug