ūüĒß #howto - Abilitare la compressione Brotli in Nginx su Centos 7

Inviato da Mirko Brombin il Mar, 01/22/2019 - 14:38

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.

Requisiti

  • Nginx 1.9.5 con abilitazione --compat¬†(vediamo l'installazione in questa guida)
  • Repository pagespeed

Installazione

L'installazione è facilitata dalla messa a disposizione di una repository dedicata, per sistemi RHEL. Procediamo quindi con l'installazione della repository via yum:

yum install https://extras.getpagespeed.com/release-el7-latest.rpm

e la consecutiva installazione di nginx e del modulo:

yum install nginx nginx-module-nbr

consiglio di leggere la nostra guida per la fase di configurazione dei blocchi server{}.

Nel caso delle installazioni nginx con build da sorgente, bisogna tenere in considerazione che la compilaione deve avvenire con la flag¬†--compat, altrimenti non sar√† possibile eseguire moduli dinamici. Le versioni pi√Ļ recenti distribuite precompilate dovrebbero essere gi√† compatibili.

Abilitazione modulo

Una volta installati i requisiti proseguiamo con il caricamento del modulo. A seconda della posizione del vostro file di configurazione nginx.conf, di norma in locazioine /etc/nginx/nginx.conf, aggiungiamo i seguenti moduli:

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

e riavviamo il processo:

systemctl restart nginx

Configurazione

Una volta percorsi i precedenti passaggi, possiamo abilitare la compressione, semplicemente aggiungendo la configurazione Brotli nei server{} block dei siti web a cui vogliamo venga applicato il nuovo algoritmo. Nel nostro caso per il_mio_dominio.ex:

server {
    ..
    server_name  il_mio_dominio.ex www.il_mio_dominio.ex;
    ..

    brotli on;
    brotli_types text/xml image/svg+xml application/x-font-ttf image/vnd.microsoft.icon application/x-font-opentype application/json font/eot application/vnd.ms-fontobject application/javascript font/otf application/xml application/xhtml+xml text/javascript  application/x-javascript text/plain application/x-font-truetype application/xml+rss image/x-icon font/opentype text/css image/x-win-bitmap;
    
    ..
    location / {
        ..
    }
    ..
}

dove:

  • brotli on¬†- √® l'effettiva abilitazione del modulo
  • brotli_types¬†- sono i tipi di file per cui verr√† abilitata la compressione

Ricordiamo di riavviare il processo nginx dopo l'abilitazione (in generale ad ogni modifica di configurazione).

Verifica

Se tutti i passaggi sono stati seguiti alla lettera, possiamo effettuare l'effettiva abilitazione via curl:

curl -IL https://il_mio_dominio.ex -H "Accept-Encoding: br"

se il risultato è HTTP/1.1 200 OK, la compressione è effettivamente attiva.

Good¬†*nixÔĽŅ
 - Mirko

Etichette