Compressione Brotli in nginx

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.

Torna su