Serveur Apache · 4 min read · Sep 25, 2025
Comment économiser du trafic avec mod_deflate d'Apache2

Dans ce tutoriel, je vais décrire comment installer et configurer mod_deflate sur un serveur web Apache2. mod_deflate permet à Apache2 de compresser des fichiers et de les livrer aux clients (par exemple, navigateurs) qui peuvent gérer le contenu compressé, ce que font la plupart des navigateurs modernes. Avec mod_deflate, vous pouvez compresser des fichiers HTML, texte ou XML à environ 20 - 30 % de leur taille d’origine, ce qui vous permet d’économiser du trafic serveur et de rendre vos utilisateurs modem plus heureux.
La compression des fichiers entraîne une charge légèrement plus élevée sur le serveur, mais d’après mon expérience, cela est compensé par le fait que les temps de connexion des clients à votre serveur diminuent considérablement. Par exemple, un utilisateur modem qui avait besoin de sept secondes pour télécharger un fichier HTML non compressé pourrait maintenant n’avoir besoin que de deux secondes pour le même fichier, mais compressé.
En utilisant mod_deflate, vous n’avez pas à craindre d’exclure des utilisateurs avec des navigateurs plus anciens qui ne peuvent pas gérer le contenu compressé. Le navigateur négocie avec le serveur avant qu’un fichier ne soit transféré, et si le navigateur ne peut pas gérer le contenu compressé, le serveur livre les fichiers non compressés.
mod_deflate a remplacé mod_gzip d’Apache 1.3 dans Apache2. Si vous souhaitez servir des fichiers compressés avec Apache 1.3, jetez un œil à ce tutoriel : mod_gzip - servir du contenu compressé par le serveur web Apache.
Je tiens à dire d’abord que ce n’est pas la seule façon de mettre en place un tel système. Il existe de nombreuses façons d’atteindre cet objectif, mais c’est la méthode que j’utilise. Je ne donne aucune garantie que cela fonctionnera pour vous !
1 Activer mod_deflate
Si vous avez Apache2 installé, mod_deflate devrait également déjà être installé sur votre système. Maintenant, nous devons l’activer. Sur Debian, nous pouvons le faire comme ceci :
a2enmod deflatePuis redémarrez Apache2 :
service apache2 restartSur d’autres distributions, vous devrez peut-être modifier manuellement la configuration d’Apache2 pour activer mod_deflate. Vous devrez peut-être ajouter une ligne comme celle-ci à la section LoadModule :
LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.soAssurez-vous d’ajuster le chemin vers mod_deflate.so, et redémarrez Apache2 ensuite.
2 Configurer mod_deflate
La compression des fichiers peut être configurée de deux manières : soit par exclusion explicite de fichiers par extension, soit par inclusion explicite de fichiers par type MIME. Vous pouvez activer mod_deflate pour l’ensemble de votre serveur Apache2, ou juste pour des sites virtuels spécifiques. En fonction de cela, ouvrez maintenant la section de configuration du serveur global d’Apache2 ou juste la section de configuration vhost où vous souhaitez activer mod_deflate.
2.1 Inclusion explicite de fichiers par type MIME
Si vous souhaitez compresser uniquement les fichiers HTML, texte et XML, ajoutez cette ligne à votre configuration :
AddOutputFilterByType DEFLATE text/html text/plain text/xmlC’est la configuration que j’utilise car je ne veux pas compresser les images ou les fichiers PDF ou les fichiers déjà compressés tels que les fichiers zip.
2.2 Exclusion explicite de fichiers par extension
Si vous souhaitez compresser tous les types de fichiers et exclure juste quelques-uns, vous ajouteriez quelque chose comme ceci à votre configuration (au lieu de la ligne de la section 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-varyCela compresserait tous les fichiers sauf les images (gif, jpg et png), les fichiers déjà compressés (comme zip et tar.gz) et les fichiers PDF, ce qui a du sens car vous ne gagnez pas grand-chose en compressant ces types de fichiers.
2.3 Autres directives de configuration
Que vous utilisiez la configuration de la section 2.1 ou 2.2, vous devriez ajouter ces lignes à votre configuration :
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/htmlCes lignes sont pour certains navigateurs plus anciens qui ne prennent pas en charge la compression de fichiers autres que les documents HTML.
La configuration est maintenant terminée, et vous devez maintenant redémarrer Apache2. Sur Debian, vous le faites comme ceci :
service apache2 restartPour en savoir plus sur d’autres directives de configuration, jetez un œil au module Apache mod_deflate.
3 Test
Pour tester notre compression, nous ajoutons quelques directives à notre configuration mod_deflate qui enregistrent le rapport de compression des fichiers livrés. Ouvrez votre configuration mod_deflate et ajoutez les lignes suivantes :
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 deflateAssurez-vous de remplacer /var/log/apache2 par le répertoire de logs de votre Apache2. Cela pourrait être /var/log/httpd, /var/log/httpd2, etc.
Puis redémarrez Apache2. Sur Debian, faites-le comme ceci :
service apache2 restartMaintenant, chaque fois qu’un fichier est demandé, cela sera enregistré dans /var/log/apache2/deflate_log (ou dans le fichier que vous avez modifié). Une ligne de log typique ressemble à ceci :
"GET /info.php HTTP/1.1" 7621/45430 (16%)Vous voyez que le fichier info.php a été demandé et livré. Sa taille d’origine était de 45430 octets, et il a été compressé à 7621 octets ou 16 % de sa taille d’origine ! C’est un excellent résultat, et si votre site web se compose principalement de fichiers HTML, texte et XML, mod_deflate vous fera économiser beaucoup de trafic, et pour les utilisateurs avec une connexion à faible bande passante, votre site se chargera beaucoup plus rapidement.
Si vous n’avez plus besoin de l’enregistrement après vos tests, vous pouvez annuler les modifications de la section 3 et redémarrer Apache2.
4 Liens
- Module Apache mod_deflate : http://httpd.apache.org/docs/2.0/mod/mod_deflate.html
- mod_gzip - servir du contenu compressé par le serveur web Apache : https://www.howtoforge.com/linux_apache_mod_gzip
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.