GZIP è un ottimo sistema di compressione: supportato da tutti i browser più moderni, attivandolo ridurremmo la quantità di dati da trasferire fra il nostro server ed il client.

E’ inoltre uno dei parametri necessari per aumentare lo score del proprio sito su Google speed insight.

Se non lo è già, avremo bisogno di attivare mod_deflate: questo modulo permette appunto la compressione delle risorse usando l’algoritmo gzip prima dell’invio al client.  Dovrebbe essere installato di default e già attivato con la tua installazione di apache. Possiamo accertarcene usando il comando:

apache2ctl -M | grep deflate

In caso di output vuoto, apriamo il file /etc/apache2/mods-available/deflate.load e togliamo il simbolo del cancelletto davanti alla seguente riga:
LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so. Prima di continuare dovremo ricaricare la configurazione di apache2 sudo systemctl reload apache2.

Riavviando il precedente comando, ora dovremmo vedere il modulo attivo.

Configurazione del mod_deflate

Per i file testuali come le pagine HTML, Javascript e CSS ha molto senso utilizzare la compressione.
Per file binari come flash, immagini o video potrebbe essere inutile essendo già di solito dotati di qualche tipo di compressione.

Vediamo quindi una possibile configurazione del nostro apache :


Il file viene dal HTML5 boilerplate.

Usando questo codice, verranno gzippato solo i file testuali o con cui ha senso utilizzare la compressione.

Possiamo scegliere di aggiungere il codice in coda al file di configurazione di apache, /etc/apache2/apache2.conf (httpd.conf su alcune distribuzioni); oppure di creare un nuovo file compression.conf dentro a /etc/apache2/conf-available/.

Testing della configurazione

Infine possiamo testare se il modulo è correttamente attivo e funzionante utilizzando il seguente comando:

wget -O - --header="Accept-Encoding: gzip" https://blog.informaticalab.com/ | zcat | head

Questo richiederà al server il trasferimento del file di index come file gzipped, userà zcat per decomprimerlo e mostrerà le prime 10 righe prima di interrompersi.

Se il server non è correttamente configurato, zcat ci restituirà l’errore gzip: stdin: not in gzip format.