#howto - Abilitare la compressione Brotli in Nginx (build) su Centos 7
In questa guida vediamo come installare e abilitare la compressione Brotli, su installazioni compilate di Nginx per Centos 7.
Attenzione, nel caso in cui la tua installazione di Nginx non è stata compilata manualmente, prosegui la lettura su questa guida, invece nel caso in cui non è già presente una installazione di Nginx o è presente una compilata, procedi con la lettura.
Brotli è un algoritmo di compressione sempre più difuso nei browser moderni. Questo algoritmo offre prestazioni maggiori rispetto Gzip, parliamo di quasi il 40% di ottimizzazione della compressione, oltre che un miglioramento delle prestazioni necessarie per l’impiego.
Possiamo abilitare la compressione Brotli in Nginx grazie ad un modulo messo a disposizione dallo stesso team di pagespeed.
Preparazione
Per prima cosa installiamo gli strumenti necessari a compilare “Development Tools”:
yum groupinstall 'Development Tools' -y
yum install git
richiamiamo una shell root per i prossimi comandi:
sudo su
creiamo una cartella dove lavorare, ad esempio in /root:
mkdir /root/work
cd /root/work
e scarichiamo il sorgente di Nginx per poi estrarlo, nel mio caso installo la 1.15.8:
wget http://nginx.org/download/nginx-1.15.8.tar.gz
tar -xzvf nginx-1.15.8.tar.gz
scarichiamo infine il sorgente di Brotli, sempre in /root/work e aggiorniamo ogni dipendenza:
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotligit submodule update --init --recursive
Installazione
Nel caso fosse già presente una installaione compilata di Nginx, preleviamo le opzioni di configurazione:
nginx -V
dall’output ricevuto annotiamo il contenuto subito dopo configure arguments:, ci servirà nella nuova configurazione.
Cominciamo la configurazione, entriamo nella locazione dove e presente il sorgente di Nginx:
cd /root/work/nginx-1.15.8
e prepariamo il comando di configurazione. Se abbiamo annotato la configurazione di una precedente installazione, ci basterà aggiungere quelle stringhe subito dopo ./configure, seguite dal modulo brotli, ad esempio:
./configure PRECEDENTE_CONFIGURAZIONE --add-module=/root/work/ngx_brotli
nel caso contrario, sarà necessaria solo la dicitura del modulo Brotli:
./configure --add-module=/root/work/ngx_brotli
Una volta terminato il processo di installazione, possiamo compilare e installare la nostra versione di Nginx:
make
make install
e nel caso di una precedente installaione, riavviare il servizio:
systemctl restart nginx
Per le nuove installazioni invece, ci portiamo nella locazione di installazione:
cd /usr/local/nginx/sbin
ed avviamo nginx:
./nginx
Per le nuove installazioni consiglio la creazione dello script d’avvio con systemctl, leggi la sezione Script di avvio qui.
Configurazione di Brotli
Ora che tutto è pronto, possiamo configurare Brotli aggiungendo la flag brotli on nel blocco http di Nginx:
nano /usr/local/nginx/conf/nginx
ed aggiungiamo le seguenti istruzioni:
brotli on;
brotli_static on;
brotli_types *;
all’interno del blocco http{..}
.
Ci sono diverse istruzioni disponibili:
- brotli on/off che imposta lo stato attivo o spento della compressione, il mio consiglio è quello di abilitarlo di base nel blocco
http{..}
per poi disattivarlo in determinati siti web tramite il bloccoserver{..}
dedicato - brotli_static on/off che determina se dovrà essere consegnata la versione compressa dei file statici
- brotli_types i tipi di file per cui verrà abilitata la compressione, inserire
*
per tutti i file - brotli_comp_level con un valore compreso da 0 a 11, indica il livello di compressione, di base è 6
- brotli_min_length indica la dimensione minima da cui iniziare la compressione di un file
- brotli_buffers per il numero e la dimensione dei buffer impiegati durante la fase di compressione
Infine riavviamo Nginx:
systemctl restart nginx
o su installazioni senza servizio:
./nginx -s restart
In questo modo verrà abilitata la compressione Brotli in tutti i siti web configurati con Nginx.
- Mirko