Memo – Compression

Publié le 05/05/2015, dans informatique, web, apache, compression, linux
Quand on a un site web, se pose parfois le problème de la taille des fichiers transmis : par exemple récemment mon ami Thibault Hottou (Dont vous pouvez voir les chouettes créations ici : http://cowardsprojects.comoj.com) a créé un nouveau site. Ce dernier avait besoin de charger les bibliothèques Jquery et d'autres fichiers assez lourds, sa page pesait environ 1Mio.
Le but fut donc de réduire le poids de la page transmise : pour cela une solution bien pratique est la compression.
I – Principe
Le but est de dire au serveur web (ici Apache) de compresser certains fichiers avant de les envoyer, puis une fois reçus les fichiers sont décompressés à la volée par le navigateur qui les affiches.
II – Mise en œuvre
1 – Activer les modules qui vont bien
On active le module headers qui permet de modifier les en-têtes HTTP (notamment en indiquant au navigateur que la page est compressée) ainsi que le module deflate qui gère la compression.
$ a2enmod headers & a2enmod deflate
2 – On modifie le fichier apache2.conf
On y ajoute les lignes concernant la compression (j'ai ajouté des commentaires pour expliquer un peu le rôle de chaque partie). La compression peut être comprise entre 0 (pas de compression) et 9 (le maximum).
SetOutputFilter DEFLATE
DeflateCompressionLevel 9 #le niveau de compression
#on spécifie le dossier dont on veut compresser les fichiers (chemin relatif au dossier web d'apache)
AddOutputFilterByType DEFLATE text/plain #type de fichier à comrpesser
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
3 – On enregistre et on recharge la configuration d'Apache
$ service apache2 reload
Et c'est tout, on peut voir la différence avec et sans le module deflate en regardant le poids de la page avant et après compression.
Ici pour mon site thinkers.ddns.net :
Avec compression :
Sans compression :
Credit image : Walz of Winnipeg
Vous pouvez commenter en envoyant un mail via ce bouton (votre adresse ne sera pas publié).
Commenter par mail