Varnish cache est un accélérateur de cache gratuit et open source utilisé pour accélérer votre site Web en mettant en cache le contenu en mémoire. Il est extrêmement rapide et réduit le temps de chargement des pages, ce qui facilite vos SERP et améliore l'expérience utilisateur. Il est utilisé par de nombreuses organisations, notamment Facebook, Twitter et Wikipedia. Varnish se situe entre Nginx et les clients qui reçoivent les demandes des clients et les transmettent au backend. Cela améliorera les performances du serveur Web car Varnish servira le contenu de la mémoire.
Dans ce tutoriel, je vais vous montrer comment installer Varnish 7 devant Nginx sur Rocky Linux 8.
Prérequis
- Un serveur exécutant Rocky Linux 8.
- Un mot de passe root est configuré sur le serveur.
Installer Varnish 7
Avant de commencer, vous devrez désactiver les modules de vernis existants de votre système. Vous pouvez le désactiver en exécutant la commande suivante :
dnf module disable varnish
Vous devriez voir le résultat suivant :
============================================================================================================================================== Package Architecture Version Repository Size ============================================================================================================================================== Disabling modules: varnish Transaction Summary ============================================================================================================================================== Is this ok [y/N]: y Complete!
Ensuite, installez le référentiel EPEL à l'aide de la commande suivante :
dnf install epel-release -y
Ensuite, ajoutez le référentiel Varnish Cache 7 à votre système à l'aide de la commande suivante :
curl -s https://packagecloud.io/install/repositories/varnishcache/varnish70/script.rpm.sh | bash
Une fois le dépôt ajouté, installez le Varnish 7 à l'aide de la commande suivante :
dnf install varnish -y
Une fois l'installation réussie, vérifiez les informations sur Varnish avec la commande suivante :
rpm -qi varnish
Vous devriez voir le résultat suivant :
Name : varnish Version : 7.0.2 Release : 1.el8 Architecture: x86_64 Install Date: Sunday 13 February 2022 06:24:35 AM UTC Group : System Environment/Daemons Size : 8907085 License : BSD Signature : (none) Source RPM : varnish-7.0.2-1.el8.src.rpm Build Date : Wednesday 12 January 2022 02:25:34 PM UTC Build Host : 7fc509e75620 Relocations : (not relocatable) URL : https://www.varnish-cache.org/ Summary : High-performance HTTP accelerator Description : This is Varnish Cache, a high-performance HTTP accelerator.
Gérer le service de vernis
Après avoir installé Varnish, démarrez le service Varnish et activez-le au redémarrage du système à l'aide de la commande suivante :
systemctl start varnish
systemctl enable varnish
Vous pouvez vérifier l'état du vernis avec la commande suivante :
systemctl status varnish
Vous obtiendrez le résultat suivant :
? varnish.service - Varnish Cache, a high-performance HTTP accelerator Loaded: loaded (/usr/lib/systemd/system/varnish.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2022-02-13 06:24:56 UTC; 6s ago Process: 2555 ExecStart=/usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m (c> Main PID: 2556 (varnishd) Tasks: 217 Memory: 104.5M CGroup: /system.slice/varnish.service ??2556 /usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m ??2567 /usr/sbin/varnishd -a :6081 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,256m Feb 13 06:24:55 rockylinux systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator... Feb 13 06:24:55 rockylinux varnishd[2556]: Version: varnish-7.0.2 revision 9b5f68e19ca0ab60010641e305fd12822f18d42c Feb 13 06:24:55 rockylinux varnishd[2556]: Platform: Linux,4.18.0-348.12.2.el8_5.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit Feb 13 06:24:55 rockylinux varnishd[2556]: Child (2567) Started Feb 13 06:24:56 rockylinux varnishd[2556]: Child (2567) said Child starts Feb 13 06:24:56 rockylinux systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.
Configurer le vernis
Par défaut, Varnish écoute sur le port 6081. Ici, nous utiliserons Varnish pour accepter les connexions HTTP entrantes. Vous devrez donc configurer Varnish pour écouter sur le port 80. Vous pouvez le faire en éditant /usr/lib/systemd/system/varnish.service fichier :
nano /usr/lib/systemd/system/varnish.service
Changez le port 6081 en 80 comme indiqué ci-dessous :
ExecStart=/usr/sbin/varnishd -a :80 -a localhost:8443,PROXY -p feature=+http2 -f /etc/varnish/default.vcl -s malloc,2g
Enregistrez et fermez le fichier puis rechargez le démon systemd pour appliquer les modifications :
systemctl daemon-reload
Ensuite, redémarrez le service Varnish pour appliquer les modifications :
systemctl restart varnish
Ensuite, vérifiez le port d'écoute de Varnish à l'aide de la commande suivante :
ss -antpl | grep varnish
Vous devriez voir le port d'écoute Varnish dans la sortie suivante :
LISTEN 0 10 127.0.0.1:46093 0.0.0.0:* users:(("varnishd",pid=2819,fd=13)) LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("cache-main",pid=2830,fd=6),("varnishd",pid=2819,fd=6)) LISTEN 0 128 127.0.0.1:8443 0.0.0.0:* users:(("cache-main",pid=2830,fd=9),("varnishd",pid=2819,fd=9)) LISTEN 0 10 [::1]:33963 [::]:* users:(("varnishd",pid=2819,fd=12)) LISTEN 0 128 [::]:80 [::]:* users:(("cache-main",pid=2830,fd=7),("varnishd",pid=2819,fd=7)) LISTEN 0 128 [::1]:8443 [::]:* users:(("cache-main",pid=2830,fd=8),("varnishd",pid=2819,fd=8))
Configurer Nginx pour qu'il fonctionne avec Varnish
Dans cette section, nous allons installer Nginx et le configurer pour qu'il fonctionne avec Varnish. Tout d'abord, installez le package Nginx avec la commande suivante :
dnf install nginx -y
Après avoir installé Nginx, vous devrez modifier le fichier de configuration Nginx et changer le port d'écoute par défaut de Nginx de 80 à 8080 .
Modifiez le fichier de configuration principal de Nginx à l'aide de la commande suivante :
nano /etc/nginx/nginx.conf
Recherchez les lignes suivantes :
listen 80 default_server; listen [::]:80 default_server;
Et les remplacer par les lignes suivantes :
listen 8080 default_server; listen [::]:8080 default_server;
Enregistrez et fermez le fichier lorsque vous avez terminé, puis démarrez le service Nginx pour appliquer les modifications :
systemctl start nginx
Vous pouvez également vérifier l'état de Nginx à l'aide de la commande suivante :
systemctl status nginx
Vous obtiendrez le résultat suivant :
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2022-02-13 06:29:02 UTC; 8s ago Process: 5627 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 5626 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 5624 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 5629 (nginx) Tasks: 2 (limit: 11412) Memory: 6.7M CGroup: /system.slice/nginx.service ??5629 nginx: master process /usr/sbin/nginx ??5630 nginx: worker process Feb 13 06:29:02 rockylinux systemd[1]: Starting The nginx HTTP and reverse proxy server... Feb 13 06:29:02 rockylinux nginx[5626]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Feb 13 06:29:02 rockylinux nginx[5626]: nginx: configuration file /etc/nginx/nginx.conf test is successful Feb 13 06:29:02 rockylinux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Feb 13 06:29:02 rockylinux systemd[1]: Started The nginx HTTP and reverse proxy server.
Vérifier le cache de vernis
À ce stade, Varnish est installé et configuré avec le serveur Web Nginx. Il est maintenant temps de tester le cache Varnish.
Exécutez la commande suivante pour vérifier le cache Varnish :
curl -I http://your-server-ip
Si tout va bien, vous obtiendrez le résultat suivant :
HTTP/1.1 200 OK Server: nginx/1.14.1 Date: Sun, 13 Feb 2022 06:30:06 GMT Content-Type: text/html Content-Length: 3429 Last-Modified: Thu, 10 Jun 2021 09:09:03 GMT ETag: "60c1d6af-d65" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/7.0) Accept-Ranges: bytes Connection: keep-alive
Conclusion
Toutes nos félicitations! vous avez installé avec succès Varnish avec Nginx sur Rocky Linux 8. Vous pouvez maintenant implémenter Varnish dans l'environnement de production pour accélérer les performances de votre site Web. N'hésitez pas à me demander si vous avez des questions.