System-Linux

Aller au contenu | Aller au menu | Aller à la recherche

Installation et configuration de Mod_deflate

winzip deflate jpeg

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/

Par GanGan | le lundi, novembre 9 2009 07:00

Commentaires

1. Web'

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

2. Nop

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.

3. djib

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.

4. gangan

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.

5. freak0

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 ...

6. olivier

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.