Apache mod_deflate · 4 min read · Sep 25, 2025

Come Risparmiare Traffico Con mod_deflate di Apache2

In questo tutorial, descriverò come installare e configurare mod_deflate su un server web Apache2. mod_deflate consente ad Apache2 di comprimere i file e consegnarli ai client (ad es. browser) che possono gestire contenuti compressi, cosa che la maggior parte dei browser moderni fa. Con mod_deflate, puoi comprimere file HTML, di testo o XML a circa il 20 - 30% delle loro dimensioni originali, risparmiando così traffico sul server e rendendo i tuoi utenti modem più felici.

Comprimere i file comporta un carico leggermente maggiore sul server, ma nella mia esperienza, questo è compensato dal fatto che i tempi di connessione dei client al tuo server diminuiscono notevolmente. Ad esempio, un utente modem che aveva bisogno di sette secondi per scaricare un file HTML non compresso potrebbe ora averne bisogno solo di due per lo stesso file, ma compresso.

Utilizzando mod_deflate non devi temere di escludere utenti con browser più vecchi che non possono gestire contenuti compressi. Il browser negozia con il server prima che venga trasferito qualsiasi file e, se il browser non può gestire contenuti compressi, il server consegna i file non compressi.

mod_deflate ha sostituito mod_gzip di Apache 1.3 in Apache2. Se desideri servire file compressi con Apache 1.3, dai un’occhiata a questo tutorial: mod_gzip - servire contenuti compressi dal server web Apache

Voglio dire prima di tutto che questo non è l’unico modo per impostare un sistema del genere. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo che seguo. Non rilascio alcuna garanzia che questo funzionerà per te!

1 Abilitare mod_deflate

Se hai Apache2 installato, mod_deflate dovrebbe già essere installato sul tuo sistema. Ora dobbiamo abilitarlo. Su Debian, possiamo farlo in questo modo:

a2enmod deflate

Poi riavvia Apache2:

service apache2 restart

Su altre distribuzioni, potresti dover modificare manualmente la configurazione di Apache2 per abilitare mod_deflate. Potresti dover aggiungere una riga come questa alla sezione LoadModule:

LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so

Assicurati di adattare il percorso a mod_deflate.so e riavvia Apache2 successivamente.

2 Configurare mod_deflate

La compressione dei file può essere configurata in uno dei due modi: esclusione esplicita di file per estensione o inclusione esplicita di file per tipo MIME. Puoi abilitare mod_deflate per l’intero server Apache2 o solo per siti virtuali specifici. A seconda di questo, apri ora la sezione di configurazione globale del server di Apache2 o solo la sezione di configurazione del vhost in cui desideri abilitare mod_deflate.

2.1 Inclusione Esplicita Di File Per Tipo MIME

Se desideri comprimere solo file HTML, di testo e XML, aggiungi questa riga alla tua configurazione:

AddOutputFilterByType DEFLATE text/html text/plain text/xml

Questa è la configurazione che sto usando perché non voglio comprimere immagini o file PDF o file già compressi come i file zip.

2.2 Esclusione Esplicita Di File Per Estensione

Se desideri comprimere tutti i tipi di file ed escludere solo alcuni, dovresti aggiungere qualcosa di simile alla tua configurazione (invece della riga della sezione 2.1):

SetOutputFilter DEFLATE  
SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ \\  
    no-gzip dont-vary  
SetEnvIfNoCase Request_URI \\  
    \\.(?:exe|t?gz|zip|bz2|sit|rar)$ \\  
    no-gzip dont-vary  
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary

Questo comprimerebbe tutti i file tranne le immagini (gif, jpg e png), i file già compressi (come zip e tar.gz) e i file PDF, il che ha senso perché non guadagni molto comprimendo questi tipi di file.

2.3 Ulteriori Direttive Di Configurazione

Indipendentemente dal fatto che tu utilizzi la configurazione della sezione 2.1 o 2.2, dovresti aggiungere queste righe alla tua configurazione:

BrowserMatch ^Mozilla/4 gzip-only-text/html  
BrowserMatch ^Mozilla/4\.0[678] no-gzip  
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

Queste righe sono per alcuni browser più vecchi che non supportano la compressione di file diversi dai documenti HTML.

La configurazione è ora completata e ora devi riavviare Apache2. Su Debian, lo fai in questo modo:

service apache2 restart

Per conoscere ulteriori direttive di configurazione, dai un’occhiata al Modulo Apache mod_deflate.

3 Test

Per testare la nostra compressione, aggiungiamo alcune direttive alla nostra configurazione di mod_deflate che registrano il rapporto di compressione dei file consegnati. Apri la tua configurazione di mod_deflate e aggiungi le seguenti righe:

DeflateFilterNote Input input_info  
DeflateFilterNote Output output_info  
DeflateFilterNote Ratio ratio_info  
LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate  
CustomLog /var/log/apache2/deflate_log deflate

Assicurati di sostituire /var/log/apache2 con la directory di log del tuo Apache2. Questo potrebbe essere /var/log/httpd, /var/log/httpd2, ecc.

Poi riavvia Apache2. Su Debian, fallo in questo modo:

service apache2 restart

Ora ogni volta che un file viene richiesto, questo verrà registrato in /var/log/apache2/deflate_log (o nel file che hai cambiato). Una riga di log tipica appare così:

"GET /info.php HTTP/1.1" 7621/45430 (16%)

Vedi che il file info.php è stato richiesto e consegnato. La sua dimensione originale era di 45430 byte e è stata compressa a 7621 byte o il 16% della sua dimensione originale! Questo è un ottimo risultato e, se il tuo sito web consiste principalmente di file HTML, di testo e XML, mod_deflate ti farà risparmiare molto traffico e per gli utenti con una connessione a bassa larghezza di banda il tuo sito si caricherà molto più velocemente.

Se non hai più bisogno della registrazione dopo i tuoi test, puoi annullare le modifiche della sezione 3 e riavviare Apache2.

4 Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.