Brotli è un algoritmo di compressione sviluppato da Google che offre migliori prestazioni rispetto a Gzip in termini di rapporto di compressione ed efficienza. Grazie alla sua maggiore efficacia, Brotli può ridurre significativamente il peso delle risorse statiche, migliorando i tempi di caricamento delle pagine web.
Abilitare Brotli in nginx
Per utilizzare Brotli con nginx, è necessario assicurarsi che il modulo ngx_brotli
sia installato. Questo modulo non è incluso di default in nginx e deve essere aggiunto manualmente.
Installazione di Brotli
Su sistemi basati su Debian e Ubuntu, è possibile installare Brotli con il pacchetto nginx-extras
:
sudo apt update
sudo apt install -y nginx-extras
Se si utilizza una versione personalizzata di nginx, è possibile compilare e installare il modulo Brotli manualmente:
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli
git submodule update --init
Quindi, compilare nginx con il modulo Brotli:
./configure --add-module=../ngx_brotli
make
sudo make install
Configurazione di nginx per Brotli
Dopo aver installato Brotli, è necessario abilitarlo nel file di configurazione di nginx. Modificare il file /etc/nginx/nginx.conf
o un file di configurazione del server virtuale e aggiungere le seguenti direttive:
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;
Il parametro brotli_comp_level
controlla il livello di compressione (da 1 a 11, con 6 come valore predefinito bilanciato tra compressione e velocità). La direttiva brotli_types
specifica i tipi di file che verranno compressi.
Verifica del funzionamento
Dopo aver applicato le modifiche, riavviare nginx:
sudo systemctl restart nginx
Per verificare che Brotli sia attivo, si può utilizzare curl
:
curl -H "Accept-Encoding: br" -I https://example.com
Se il server risponde con Content-Encoding: br
, significa che la compressione Brotli è attiva.
Conclusione
Abilitare Brotli in nginx può migliorare notevolmente le prestazioni del sito web riducendo la dimensione delle risorse trasferite. Sebbene richieda una configurazione manuale, i benefici in termini di velocità di caricamento e risparmio di banda ne giustificano l'implementazione.