Comment installer et configurer mod_deflate sur CentOS 7

introduction

Mod_deflate est un module Apache qui permet de compresser la sortie de votre serveur Web avant son envoi au client. Une fois que la taille du contenu de votre site est compressée, sa taille est réduite et les clients peuvent le télécharger plus rapidement. Cette fonctionnalité est précieuse non seulement pour les clients disposant d’une bande passante inférieure, mais elle est également prise en compte par les moteurs de recherche lors de l’évaluation des performances de votre site et de son rang de page.

En plus de la compression du contenu, mod_deflate peut également être utilisé à des fins de décompression. Cette technique serait applicable si vous utilisez Apache en tant que proxy inverse et que vous souhaitez traiter plus avant le contenu qui transite par le proxy. Cependant, cette technique a un usage très limité. Nous allons continuer à mettre l’accent sur l’utilisation de mod_deflate pour la compression.

Conditions préalables

Ce guide a été testé sur CentOS 7. L’installation et la configuration du module ne dépendent pas du système d’exploitation ou de la version du système d’exploitation, mais l’emplacement des fichiers de configuration peut varier en fonction du système d’exploitation et de ses versions.

Cela suppose également que vous utilisez Apache 2.4.0 ou une version ultérieure. Pour installer Apache, veuillez suivre l’étape n ° 1 de la page Comment savoir Installation de la pile Linux, Apache, MySQL, PHP (LAMP) sur CentOS.

Toutes les commandes de ce didacticiel doivent être exécutées en tant qu’utilisateur non root. Si un accès root est requis pour la commande, il sera précédé de + sudo +. Si vous n’avez pas déjà configuré cette configuration, suivez ce didacticiel: Installation du serveur initial sur CentOS 7.

Installation

Mod_deflate est inclus et activé dans l’installation par défaut d’Apache sur CentOS 7. Pour confirmer cette exécution + apachectl +, l’interface de contrôle du serveur Apache, et filtrer la sortie avec + grep + pour le mot clé + deflate + comme ceci:

apachectl -t -D DUMP_MODULES |grep deflate

Vous devriez voir + deflate_module (partagé) + si mod_deflate est installé et activé. Si vous ne le voyez pas, suivez les étapes de dépannage suivantes:

  1. Assurez-vous que le fichier de module est installé. Ce fichier fait partie du paquet principal + httpd + que vous devriez déjà avoir installé selon les conditions préalables mentionnées précédemment. Par défaut, il se trouve dans + / etc / httpd / modules / mod_deflate.so +. En outre, le serveur Web devrait pouvoir ouvrir ce fichier. À cette fin, + mod_deflate.so + devrait disposer d’autorisations lisibles par tout le monde, comme 755.

  2. Vérifiez si le module a été chargé. Ouvrez le fichier de configuration des modules de base Apache + / etc / httpd / conf.modules.d / 00-base.conf + et assurez-vous que cette ligne est présente et non commentée:

LoadModule deflate_module modules/mod_deflate.so

Configuration

Pour commencer à utiliser mod_deflate, vous devez spécifier quels types de fichiers doivent être compressés. D’une part, les formats de texte brut peuvent être considérablement réduits en taille grâce à la compression. C’est pourquoi il est judicieux de l’appliquer à des fichiers HTML, CSS ou JavaScript. Par ailleurs, de nombreux formats multimédia, tels que Flash et les images, sont déjà compressés et une compression supplémentaire sera vaine.

Pour configurer mod_deflate, créez un nouveau fichier de configuration + / etc / httpd / conf.d / mod_deflate.conf + avec l’exemple de code suivant:

/etc/httpd/conf.d/mod_deflate.conf

<filesMatch "\.(js|html|css)$">
   SetOutputFilter DEFLATE
</filesMatch>

Le code ci-dessus signifie que lorsqu’un fichier correspond aux extensions + .js +, + .html ou` + .css ou`, il sera compressé (déflaté) via la directive Apache + SetOutputFilter standard. Vous pouvez ajouter d’autres extensions de fichier texte similaires trouvées sur votre site, telles que + .txt +.

En outre, mod_deflate a quelques-unes de ses propres options de configuration importantes:

  • + DeflateCompressionLevel + - le niveau de compression à appliquer. Par défaut, ce niveau est 9, le niveau de compression le plus élevé. 1 est le niveau de compression le moins élevé. Une compression plus élevée rendrait la sortie la plus petite au prix d’une utilisation plus importante de la CPU du serveur.

  • + DeflateMemLevel + - la quantité de mémoire que zlib, la bibliothèque de compression, peut utiliser. La valeur par défaut est 9, qui est également la valeur la plus élevée. Pour calculer précisément la mémoire autorisée, vous devez multiplier la valeur + DeflateMemLevel + par 16K.

  • + DeflateWindowSize + - la taille de la fenêtre de compression. Par défaut, c’est la valeur la plus élevée possible de 15. Plus le nombre est élevé, plus le niveau de compression est élevé, encore une fois, au prix de ressources de serveur plus importantes.

Dans la plupart des cas, vous pouvez laisser les valeurs ci-dessus à leurs valeurs par défaut. Cependant, si vous pensez que les performances de votre serveur se sont considérablement dégradées après l’utilisation de mod_deflate, vous configurez des valeurs inférieures dans votre fichier de configuration + / etc / httpd / conf.d / mod_deflate.conf + comme ceci:

DeflateCompressionLevel 1

Ce qui précède diminuera le niveau de compression, ce qui aura pour effet de rendre les fichiers plus volumineux. Cependant, mod_deflate utilisera moins de processeur de cette façon. Assurez-vous de redémarrer Apache si vous décidez d’appliquer de telles modifications.

Essai

Il existe différentes manières de tester mod_deflate, mais la plus simple consiste à utiliser wget, le téléchargeur de réseau non interactif. Si vous ne l’avez pas déjà sur votre CentOS 7 Droplet, vous pouvez l’installer à l’aide de la commande + sudo yum install -y wget +.

Pour le test, vous aurez besoin d’un fichier texte d’au moins quelques centaines de Ko qui devrait devenir plus petit une fois compressé. Si vous ne possédez pas ce type de fichier, vous pouvez télécharger JQuery, une bibliothèque JavaScript populaire, et le télécharger sur votre site. Si vous ne savez pas où placer le fichier, vous pouvez simplement le télécharger dans le répertoire racine par défaut d’Apache, à savoir + / var / www / html / + dans CentOS 7. Ainsi, le fichier sera disponible dans le répertoire racine de votre site par défaut.

Une fois que l’exemple de fichier de test est chargé sur votre site, téléchargez-le avec + wget +. Vous pouvez effectuer ce test à partir de votre ordinateur local ou de Droplet. comme ça:

wget --header="Accept-Encoding: gzip" http://<your_server_ip>/jquery-1.11.3.js

Dans l’exemple ci-dessus, vous téléchargez le fichier + jquery-1.11.3.js à partir de votre serveur Apache. Pour utiliser la compression, nous passons l’argument d’en-tête supplémentaire + wget + + Accept-Encoding: gzip +.

Une fois téléchargé de la manière ci-dessus, le fichier + jquery-1.11.3.js + devrait être de 83 Ko. En fait, il ne s’agit pas exactement du même fichier JavaScript d’origine, il doit en outre être extrait par le client, ce qui entraîne également une surcharge du côté client. Cependant, la taille transférée sur le réseau ne sera que de 83 Ko, ce qui est plus de trois fois plus petit que le fichier d’origine (278 Ko).

Vous pouvez d’abord confirmer le calcul ci-dessus en vérifiant la taille du fichier téléchargé avec la commande Linux pour répertorier le contenu du répertoire + ls + comme ceci:

ls -lah jquery-1.11.3.js
-rw-r--r-- 1 user user 83K Apr 28 12:20 jquery-1.11.3.js

Ensuite, vous pouvez comparer à nouveau le résultat avec le fichier d’origine sur votre site avec la commande + ls +:

ls -lah /var/www/html/jquery-1.11.3.js
-rw-r--r-- 1 apache apache 278K Apr 28 12:20 /var/www/html/jquery-1.11.3.js

Conclusion

Comme vous l’avez vu dans cet article et dans les exemples concrets de la bibliothèque JQuery, Mod_deflate peut vous aider à réduire considérablement les besoins en bande passante de votre site. Pour poursuivre l’optimisation de votre site, consultez Apache cache de contenu, qui est la prochaine étape logique après l’activation de mod_deflate.