Questa configurazione si basa su moderne tecnologie di caching e accelerazione, pur rimanendo compatibile con una vasta gamma di ambienti di hosting.
Prima di scegliere un fornitore di hosting, assicurarsi che LiteSpeed (preferibilmente la versione Enterprise) e Redis siano disponibili e che il server soddisfi i requisiti tecnici di Joomla.
LiteSpeed: Un server web ad alte prestazioni
LiteSpeed Web Server è completamente compatibile con Apache (incluso il supporto per .htaccess) ma offre prestazioni molto migliori. Le caratteristiche principali includono:
- Gestione PHP ottimizzata tramite LSAPI (più veloce di FastCGI)
- Cache a pagina intera integrata (LSCache)
- Supporto per HTTP/3 (tramite QUIC)
- Strumenti integrati per un controllo delle risorse ottimizzato
LiteSpeed è disponibile in due edizioni:
- OpenLiteSpeed: Gratuito, ma non supporta tutte le funzionalità (come ESI)
- LiteSpeed Enterprise: Versione commerciale con funzionalità complete
Il LiteSpeed Cache Plugin per Joomla
Il plug-in ufficiale "LiteSpeed Cache for Joomla" semplifica l'integrazione delle funzionalità di memorizzazione nella cache di LiteSpeed. Offre:
- Caching HTML a pagina intera
- Eliminazione automatica quando il contenuto viene aggiornato
- Minificazione di file CSS, JS e HTML
- Integrazione con strumenti di caching degli oggetti come Redis o Memcached
Sostituzione della cache dei file di Joomla con Redis
Per impostazione predefinita, Joomla utilizza una cache basata su file memorizzata nella directory /cache. Quando Redis è impostato come gestore della cache, questi file non vengono più utilizzati. I dati memorizzati in cache vengono invece memorizzati in memoria, migliorando notevolmente le prestazioni.
Per configurarlo, vai alla scheda Joomla Global Configuration, "Sistema" → "Impostazioni cache":
- Gestore della cache: Redis
- Modalità cache: conservatore (consigliato)
Oppure impostalo direttamente nel tuo file configuration.php:
public $caching = '2'; public $cache_handler = 'redis'; public $redis_server_host = '127.0.0.1'; public $redis_server_port = '6379'; public $redis_server_auth = '';
Caching conservativo o progressivo: quale scegliere?
La scelta tra caching conservativo e progressivo dipende dal tipo di contenuto fornito dal tuo sito e dalla presenza di livelli di caching esterni come LiteSpeed o Redis.
| Contesto | Modalità Cache raccomandata | Perché? |
|---|---|---|
| Redis abilitato | Conservativa | Rispetta l'impostazione "cachable" sui moduli, evitando problemi con i contenuti dinamici. |
| Sito statico senza interazione utente | Progressiva (testare con attenzione) | Memorizza nella cache tutti i moduli per le massime prestazioni. |
| LiteSpeed only (LSCache active) | Conservativa | Riduce i conflitti con la memorizzazione nella cache delle pagine lato server. |
| LiteSpeed + Redis | Conservativa | Combina efficacemente la memorizzazione nella cache delle pagine del server (LiteSpeed) con la memorizzazione nella cache degli oggetti (Redis). |
Riepilogo: Il caching conservativo è più sicuro per siti dinamici, utenti registrati e configurazioni che utilizzano cache esterne. Il caching progressivo può essere adatto per siti web in stile brochure senza contenuti specifici per l'utente.
Redis ed estensioni di terze parti
Alcune estensioni di Joomla utilizzano internamente la cache degli oggetti di Joomla, anche se la memorizzazione nella cache è disabilitata a livello globale. Ciò significa che query o oggetti complessi possono essere memorizzati automaticamente nella cache quando Redis è abilitato, senza dover apportare modifiche all'estensione.
Redis agisce come un silenzioso potenziatore delle prestazioni, in particolare per contenuti dinamici o componenti ad alto contenuto di dati.
E ESI?
ESI (Edge Side Includes) consente di memorizzare separatamente nella cache blocchi indipendenti di una pagina, come i moduli di accesso utente o i carrelli della spesa. Questo evita di dover ricostruire l'intera pagina per modifiche di minore entità.
Tuttavia, questa funzionalità è disponibile solo in LiteSpeed Enterprise. Se il server esegue OpenLiteSpeed, ESI non funzionerà e verrà visualizzato un messaggio di avviso nel plugin Joomla.
Anche senza ESI, LiteSpeed e Redis insieme offrono comunque eccellenti miglioramenti delle prestazioni.
Risultati dei test reali
Abbiamo eseguito dei test utilizzando WebPageTest.org su un sito Joomla configurato in tre modi diversi:
| Setup | TTFB | Start Render | First Contentful Paint | Speed Index | LCP | Page size |
|---|---|---|---|---|---|---|
| No LiteSpeed, no cache | 0.336s | 0.900s | 0.875s | 1.139s | 1.187s | 698 KB |
| LiteSpeed only (no Redis) | 0.224s | 0.900s | 0.886s | 1.062s | 1.086s | 699 KB |
| LiteSpeed + Redis (conservative cache) | 0.227s | 0.600s | 0.666s | 1.370s | 1.631s | 699 KB |
I risultati mostrano:
- LiteSpeed migliora significativamente il TTFB (da 336 ms a 224 ms)
- Redis non influisce sul TTFB, ma velocizza la prima visualizzazione
- Speed Index e LCP sono leggermente più alti con Redis, probabilmente a causa del comportamento della cache o della composizione della pagina
Redis migliora principalmente le prestazioni interne di Joomla, mentre LiteSpeed ottimizza i tempi di risposta del server.
Strumenti di test
Vuoi testare il tuo sito? Ecco alcuni strumenti utili:
- WebPageTest – Metriche dettagliate (seleziona "Parigi" nelle impostazioni avanzate per l'hosting francese)
- Google PageSpeed Insights – Consigli di Google sulle prestazioni
- Strumenti Pingdom – Analisi delle dimensioni e della velocità della pagina
- GTmetrix – Combina più report con cronologie visive
Conclusione
LiteSpeed e Redis formano una potente combinazione per ottimizzare le prestazioni di Joomla. LiteSpeed riduce i tempi di risposta del server, Redis alleggerisce l'elaborazione interna e il plugin ufficiale semplifica l'integrazione.
Un prossimo articolo esplorerà un percorso di ottimizzazione simile utilizzando Nginx come alternativa gratuita e potente a LiteSpeed.
Alcuni articoli pubblicati sulla rivista Joomla Community Magazine rappresentano l'opinione personale o l'esperienza dell'autore su un argomento specifico e potrebbero non essere in linea con la posizione ufficiale del progetto Joomla.