09nov.2009
Installation et configuration de Mod_deflate

Augmenter les performances de sont serveur web apache 2 par compression de donnée.
Le mod_deflate est un module apache2 qui permet de compresser les données envoyées par votre serveur et par ce fait de gagner en rapidité et performance ainsi qu'en bande passante.
Vérifier que les modules deflate et headers sont bien présent et chargés dans votre apache2.conf ou httpd.conf selon votre installation d'apache.
Vous devriez avoir ceci dans votre fichier :
LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so
Modifiez le fichier /etc/apache2/conf.d/mod_deflate.conf et ajoutez-y ceci ou créez le si il n'existe pas :
<Location />
# Ajoute un filtre
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Ne pas compresser les images
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
</Location>
Ensuite, tres important ! il faut ajouter dans chaque vhost ceci SetOutputFilter DEFLATE pour activer la compression.
Maintenant redémarrez votre serveur web apache :
invoke-rc apache2 restart ou service httpd restart
Voila, vos pages web sur les vhost que vous avez défini sont envoyées compressées quand le client le supporte, vous gagnez en perf :p .
Pour vérifier si le mod_deflace fonctionne sur un de vos vhosts rendez vous à cette url : http://www.port80software.com/

Commentaires
lundi, novembre 9 2009 | 09:31
Bonne petite explication.
Cependant le fait de compresser les données engendre de l'utilisation de ressources.
A partir de la je dirais plutôt que cela réduit l'utilisation de la bande passante mais à l'inverse que cela réduit les performances.
Petit lien confirmant mes dires : http://is.gd/4QI8O
lundi, novembre 9 2009 | 09:55
Salut,
Tu gagnes en bande passante oui, mais pas en performance, au contraire. Tu ne peux pas gagner en performance en ajoutant une étape supplémentaire. En effet, le temps et les performance consommée normalement sont à ajouter au temps et au performances consommées par la compression. D'autant que le client qui va recevoir ces pages compressées devra également les décompresser.
Cependant, les machines de nos jours sont suffisamment performantes pour que ces compressions ne se fassent pas sentir ou très peu.
L'avantage est donc essentiellement pour les sites qui n'ont que très peu de bande passante (comme ceux hébergés chez soit, derrière sa box) ou les gros sites qui commencent à en manquer.
D'ailleur ca me fait pensé que je ne l'ai toujours pas mis en place sur mon site, je vais faire ça dès que j'aurais un peu de temps.
lundi, novembre 9 2009 | 10:30
Je pense que compresser les données à la volée fait gagner en bande passante mais perdre en performances : le serveur doit compresser les données avant de les envoyer. J'ai un petit 300MHz comme serveur ; la perte différence de performance ne serait pas négligeable.
lundi, novembre 9 2009 | 12:48
Personnellement j'ai noté une amélioration de mes performances grâce à ce module (vu sur cacti, graphs apache, bande passante, uptime) après sur des vieux serveurs il est possible que cela plombe un peu les performances.
vendredi, novembre 13 2009 | 11:25
En fait la compression gzip est très légère en consommation cpu, même sur une machine qui date de matuzalem.
Pourtant elle permet de gagner sur les fichiers textes entre 80% et 90% de bande passante.
Globalement les gains sont énormes tandis que les pertes de performances sont négligeables.
Evidemment ça ne marche que pour les fichiers qui ne sont pas déjà compressé. Un site chargé en images et en vidéo ne verra pas de gros changements ...
mardi, décembre 8 2009 | 11:30
Quand on parle de performance, il ne faut pas s'arrêter à la vue du serveur.
Bien sur la compression génère un overhead CPU, mais du point de vue du client, le temps de transit réseau gagné, surtout sur un site avec une forte affluence ou l'engorgement réseau génère des mises en queue de requêtes, est primordial
Infrastructure moins engorgée = tuyaux pouvant servir plus de page ou d'éléments = expérience utilisateur améliorée.