Le cache Varnish (également appelé Varnish) est un accélérateur HTTP open-source et performant conçu pour accélérer les serveurs web. Dans nos derniers articles, nous avons expliqué comment configurer le cache Varnish pour Apache sur CentOS 7 et CentOS 8.
Dans cet article, nous vous montrerons comment installer et utiliser le cache Varnish comme frontal pour le serveur HTTP Nginx dans CentOS 7. Ce guide devrait également fonctionner sur RHEL 7.
Exigences
Étape 1 : Installer le serveur web Nginx sur CentOS 7
1. Commencez par installer le serveur HTTP Nginx à partir des dépôts logiciels par défaut de CentOS en utilisant le gestionnaire de paquets YUM comme suit.
# yum install nginx

2. Lorsque l’installation est terminée, démarrez le service Nginx pour le moment et activez-le pour qu’il démarre automatiquement au démarrage du système.
# systemctl start nginx # systemctl enable nginx # systemctl status nginx

3. Modifiez maintenant les règles de pare-feu du système pour permettre les paquets entrants sur le port 80 en utilisant les commandes ci-dessous.
# firewall-cmd --zone=public --permanent --add-port=80/tcp # firewall-cmd --reload # firewall-cmd --zone=public --permanent --add-port=8080/tcp # firewall-cmd --reload

Étape 2 : Installer le cache Varnish sur CentOS 7
4. Il existe maintenant des paquets RPM précompilés pour la dernière version de Varnish Cache 6 (c’est-à-dire 6.5 au moment de l’écriture), donc vous devez ajouter le dépôt officiel de Varnish Cache.
Avant cela, vous devez activer le dépôt EPEL pour installer plusieurs packages de dépendance comme indiqué.
# yum install -y epel-release
5. Ensuite, installez pygpgme, un package pour la manipulation des signatures GPG et yum-utils, une collection d’utilitaires utiles qui étendent les fonctionnalités natives de yum de différentes manières.
# yum install pygpgme yum-utils
6. Créez maintenant un fichier nommé /etc/yum.repos.d/varnishcache_varnish5.repo qui contient la configuration du dépôt ci-dessous.
# vi /etc/yum.repos.d/varnishcache_varnish65.repo
Important: Assurez-vous de remplacer el
et 7
dans la configuration ci-dessous par votre distribution Linux et votre version :
[varnishcache_varnish65] name=varnishcache_varnish65 baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 [varnishcache_varnish65-source] name=varnishcache_varnish65-source baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS repo_gpgcheck=1 gpgcheck=0 enabled=1 gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300
7. Exécutez maintenant la commande ci-dessous pour mettre à jour votre cache yum local et installer le paquet varnish cache (n’oubliez pas d’accepter la clé GPG en tapant y
ou yes
lors de l’installation du paquet) :
# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65' # yum install varnish

8. Après avoir installé Varnish Cache, l’exécutable principal sera installé sous /usr/sbin/varnishd et les fichiers de configuration varnish sont situés dans /etc/varnish/ :
- /etc/varnish/default.vcl – il s’agit du fichier de configuration principal de varnish, il est écrit en utilisant le langage de configuration vanish (VCL).
9. Maintenant, démarrez le service de vernis, activez-le pour qu’il démarre automatiquement lors du démarrage du système, et vérifiez son statut pour vous assurer qu’il fonctionne comme suit.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

10. Vous pouvez confirmer que l’installation de Varnish a réussi en vérifiant l’emplacement de l’exécutable Varnish et la version installée sur votre système.
$ which varnishd $ varnishd -V
Sortie d’exemple
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64) Copyright (c) 2006 Verdens Gang AS Copyright (c) 2006-2020 Varnish Software
Étape 3 : Configurer Nginx pour travailler avec le cache Varnish
11. Dans cette étape, vous devez configurer Nginx pour travailler avec le cache Varnish. Par défaut, Nginx écoute sur le port 80, vous devriez changer le port Nginx par défaut en 8080 pour qu’il fonctionne derrière le cache Varnish.
Ouvrez le fichier de configuration de Nginx /etc/nginx/nginx.conf et trouvez la ligne listen 80 et changez-la en listen 8080 comme indiqué dans le bloc serveur ci-dessous.
# vi /etc/nginx/nginx.conf

Note : Cela doit être fait dans tous les fichiers de configuration de bloc serveur (généralement créés sous /etc/nginx/conf.d/) pour les sites Web que vous souhaitez servir via Varnish.
12. Ensuite, ouvrez le fichier de configuration du service Varnish et trouvez le paramètre ExecStart qui spécifie le port sur lequel Varnish écoute, et changez sa valeur de 6081 à 80.
# systemctl edit --full varnish
La ligne devrait ressembler à ce qui suit.
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. Ensuite, configurez Nginx en tant que serveur backend pour le proxy Varnish, dans le fichier de configuration /etc/varnish/default.vcl.
# vi /etc/varnish/default.vcl
Trouvez la section backend et définissez l’adresse IP hôte et le port. Ci-dessous se trouve la configuration par défaut du backend, configurez-la pour pointer vers votre serveur de contenu réel.
backend default { .host = "127.0.0.1"; .port = "8080"; }
14. Après avoir effectué toutes les configurations nécessaires, redémarrez Nginx HTTPD et le cache Varnish pour appliquer les changements ci-dessus.
# systemctl daemon-reload # systemctl restart nginx # systemctl restart varnish
Étape 4 : Testez le cache Varnish sur Nginx
15. Enfin, testez si le cache Varnish est activé et fonctionne avec le service Nginx en utilisant la commande cURL ci-dessous pour afficher l’en-tête HTTP.
# curl -I http://localhost
Exemple de sortie
HTTP/1.1 200 OK Server: nginx/1.16.1 Date: Wed, 06 Jan 2021 09:24:18 GMT Content-Type: text/html Content-Length: 4833 Last-Modified: Fri, 16 May 2014 15:12:48 GMT ETag: "53762af0-12e1" X-Varnish: 2 Age: 0 Via: 1.1 varnish (Varnish/6.5) Accept-Ranges: bytes Connection: keep-alive
Vous pouvez trouver des informations supplémentaires dans le référentiel Github de Varnish Cache : https://github.com/varnishcache/varnish-cache
Dans ce tutoriel, nous avons expliqué comment configurer le cache Varnish pour le serveur HTTP Nginx sur CentOS 7. Utilisez le formulaire de commentaire ci-dessous pour nous envoyer des questions ou des idées supplémentaires.
Source:
https://www.tecmint.com/install-varnish-cache-for-nginx-on-centos-7/