Réfléchissez un instant à ce qui s’est passé lorsque vous avez accédé à la page actuelle. Vous avez soit cliqué sur un lien que vous avez reçu via une newsletter, soit sur le lien présent sur la page d’accueil de Tecmint.com puis ont été amenés à cet article.
En quelques mots, vous (ou en fait votre navigateur) avez envoyé une requête HTTP au serveur Web qui héberge ce site, et le serveur a renvoyé une réponse HTTP.
Aussi simple que cela puisse paraître, ce processus implique bien plus que cela. Beaucoup de traitement a dû être fait du côté serveur afin de présenter la page joliment formatée que vous pouvez voir avec toutes les ressources qu’elle contient – statiques et dynamiques.
Sans creuser beaucoup plus profondément, vous pouvez imaginer que si le serveur Web doit répondre à de nombreuses requêtes comme celle-ci simultanément (faites-en seulement quelques centaines pour commencer), il peut soit se mettre lui-même, soit tout le système à ramper avant longtemps.
Et c’est là Vernis, un accélérateur HTTP hautes performances et un proxy inverse, peut vous sauver la mise. Dans cet article, je vais vous expliquer comment installer et utiliser Vernis comme front-end pour apache ou Nginx afin de mettre en cache les réponses HTTP plus rapidement et sans imposer de charge supplémentaire sur le serveur Web.
Cependant, depuis Vernis stocke normalement son cache en mémoire plutôt que sur disque, nous devrons être prudents et limiter l’espace RAM alloué à la mise en cache. Nous verrons comment procéder dans une minute.
Comment fonctionne le vernis
Installation de Varnish Cache sur le serveur Linux
Ce message suppose que vous avez installé un LAMPE ou LEMP serveur. Si ce n’est pas le cas, veuillez installer l’une de ces piles avant de continuer.
La documentation officielle recommande d’installer Vernis depuis le référentiel du développeur, car il fournit toujours la dernière version. Vous pouvez également choisir d’installer le package à partir des dépôts officiels de votre distribution, bien qu’il puisse être un peu obsolète.
Veuillez également noter que les référentiels du projet ne prennent en charge que 64 bits systèmes, alors que pour 32 bits machines, vous devrez recourir aux référentiels officiellement maintenus de votre distribution.
Dans cet article, nous allons installer Vernis depuis les dépôts officiellement pris en charge par chaque distribution. La principale raison de cette décision est d’uniformiser la méthode d’installation et d’assurer la résolution automatique des dépendances pour toutes les architectures.
Installer Varnish dans Linux basé sur Debian
Sur les distributions basées sur Debian, vous pouvez installer Vernis en utilisant la commande apt comme indiqué.
# apt update # apt install varnish
Installer Varnish dans Linux basé sur RHEL
Sur les distributions basées sur RHEL telles que CentOS, Rocky et AlmaLinux, vous devrez activer le référentiel EPEL avant d’installer Vernis en utilisant la commande yum comme indiqué.
# yum install epel-release # yum update # yum install varnish
Si l’installation se termine avec succès, vous aurez l’un des éléments suivants vernis versions selon votre distribution :
# varnishd -V varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Enfin, vous devez commencer Vernis manuellement si le processus d’installation ne l’a pas fait pour vous et lui permettre de démarrer au démarrage.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish
Par port par défaut 6081 est utilisé par le service de vernis et vous le confirmez en exécutant la commande netstat suivante.
# netstat -tunlp | grep 6081
Configuration du cache de vernis sous Linux
Comme nous l’avons dit précédemment, Varnish se situe au milieu des clients externes et du serveur Web. Pour cette raison, et afin que la mise en cache devienne transparente pour les utilisateurs finaux, nous devrons :
- Changer le port par défaut 6081 où Varnish écoute 80.
- Modifier le port par défaut sur lequel le serveur Web écoute 8080 au lieu de la valeur par défaut 80.
- Redirigez le trafic entrant de Varnish vers le serveur Web. Heureusement, Varnish le fait automatiquement une fois que nous avons terminé 1) et 2) pas.
Changer le port de vernis
Le vernis processus est contrôlé par systemd et a son fichier d’unité dans /usr/lib/systemd/system/varnish.servicequi contient la configuration d’exécution par défaut de Varnish.
Ici, nous devons changer le port de vernis par défaut de 6081 mettre en communication 80 et la taille du cache à 1 Go comme indiqué en exécutant la commande suivante, qui ouvrira le fichier d’unité dans l’éditeur, comme indiqué.
Note: Vous pouvez modifier la quantité de mémoire en fonction de vos ressources matérielles ou choisir d’enregistrer les fichiers en cache sur le disque.
$ sudo systemctl edit --full varnish OR # systemctl edit --full varnish
Après avoir apporté des modifications à /etc/systemd/system/varnish.service fichier, vous devez recharger le Systemd démon en exécutant la commande suivante :
# systemctl daemon-reload
Modifier le port Apache ou Nginx
Après avoir changé le port de vernis, vous devez maintenant changer votre apache ou Nginx port du serveur Web par défaut 80 au port réseau le plus courant, c’est-à-dire 8080.
---------- On Debian-based Systems ---------- # nano /etc/apache2/ports.conf [On Apache] # /etc/nginx/sites-enabled/default [On Nginx] ---------- On RHEL-based Systems ---------- # vi /etc/httpd/conf/httpd.conf [On Apache] # vi /etc/nginx/nginx.conf [On Nginx]
Une fois les modifications effectuées, n’oubliez pas de redémarrer Vernis et le serveur Web.
# systemctl restart varnish ---------- On Debian-based Systems ---------- # systemctl restart apache2 # systemctl restart nginx ---------- On RHEL-based Systems ---------- # systemctl restart httpd # systemctl restart nginx
Test du cache de vernis sous Linux
Le premier test consiste à faire un HTTP requête via la commande curl et en vérifiant qu’elle est gérée par Varnish :
# curl -I http://localhost
Le vernis comprend également deux outils pratiques :
- Afficher en temps réel les journaux Varnish, appelés intuitivement vernijournal.
- Afficher les statistiques du cache Varnish, appelées vernisstat.
Comme deuxième test, dans le screencast suivant, nous afficherons à la fois les journaux et les statistiques sur un CentOS serveur (dev1moitié supérieure de l’écran) et sur un DebianName serveur (dev2moitié inférieure de l’écran) au fur et à mesure que les requêtes HTTP sont envoyées et que les réponses sont reçues.
Tester l’analyse comparative des performances du serveur Web
Notre troisième et dernier test consistera à comparer à la fois le serveur Web et Varnish avec le outil d’analyse comparative ab et comparer les temps de réponse et la charge du processeur dans chaque cas.
Dans cet exemple particulier, nous utiliserons le CentOS serveur, mais vous pouvez utiliser n’importe quelle distribution et obtenir des résultats similaires. Regarder le charge moyenne en haut et la ligne Requêtes par seconde dans la sortie de un B.
Avec un Bnous serons envoyés 50 (-c 50) requêtes simultanées en même temps et répéter le test 1000000 fois (indiqué par -n 1000000). Varnish renverra un nombre plus élevé de requêtes par seconde et une charge moyenne beaucoup plus faible.
Important: N’oubliez pas que Varnish écoute sur le port 80 (le port HTTP par défaut), tandis qu’Apache écoute sur le port 8080. Vous pouvez également prendre note du temps nécessaire pour terminer chaque test.
# ab -c 50 -n 100000 http://localhost/index.html
Conclusion
Dans cet article, nous avons expliqué comment configurer un Vernis cache devant un serveur web, apacheou Nginx. Notez que nous n’avons pas creusé profondément dans le default.vcl fichier de configuration, ce qui nous permet de personnaliser davantage la politique de mise en cache.
Vous pouvez maintenant vous référer à la documentation officielle pour d’autres exemples de configuration ou laisser un commentaire en utilisant le formulaire ci-dessous.