Cache Varnish (communément appelé Varnish), est un accélérateur HTTP proxy inverse open-source et populaire conçu pour accélérer les serveurs web. Il est conçu pour des points de terminaison API très utilisés et également pour des sites dynamiques qui servent un contenu massif et connaissent un trafic élevé.
Il aide essentiellement à réduire la charge CPU ; prend en charge l’équilibrage de charge sur les serveurs web et permet à un navigateur web de charger rapidement des sites grâce au stockage du cache en RAM. Plusieurs grandes entreprises l’utilisent, y compris Facebook, Twitter, et Wikipédia pour n’en citer que quelques-unes.
Exigences
Dans cet article, je vais expliquer comment installer et utiliser Varnish Cache 6.5 comme frontal à un serveur web Apache dans CentOS 7 (fonctionne également sur RHEL 7).
Étape 1 : Installer le serveur web Apache sur CentOS 7
1. Commencez par installer le serveur HTTP Apache à partir des dépôts logiciels par défaut de CentOS en utilisant le gestionnaire de paquets YUM comme suit.
# yum install httpd

2. Une fois Apache installé, démarrez-le pour le moment et activez-le pour qu’il démarre automatiquement au démarrage du système.
# systemctl start httpd # systemctl enable httpd # systemctl status httpd

3. Mettez ensuite à jour les règles du pare-feu système pour autoriser les paquets entrants sur le port 80 en utilisant les commandes ci-dessous.
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --reload

Étape 2 : Installez Varnish Cache 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 la rédaction), donc vous devez ajouter le référentiel officiel de Varnish Cache.
Avant cela, vous devez activer le référentiel EPEL pour installer plusieurs paquets de dépendance comme indiqué.
# yum install -y epel-release
5. Ensuite, installez pygpgme, un package pour gérer les signatures GPG et yum-utils, une collection d’utilitaires utiles qui étendent les fonctionnalités natives de yum de diverses manières.
# yum install pygpgme yum-utils
6. Créez maintenant un fichier nommé /etc/yum.repos.d/varnishcache_varnish65.repo qui contient la configuration du référentiel 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 sa 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 le cache yum local et installer le package varnish cache (n’oubliez pas d’accepter la clé GPG en tapant y
ou yes
lors de l’installation du package) :
# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65' # yum install varnish

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

10. Vous pouvez confirmer que l’installation de Varnish a réussi en voyant l’emplacement de l’exécutable Varnish et la version installée sur votre système.
$ which varnishd $ varnishd -V
Exemple de sortie
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64) Copyright (c) 2006 Verdens Gang AS Copyright (c) 2006-2020 Varnish Software
Étape 3 : Configurer Apache pour fonctionner avec Varnish Cache
11. Configurez maintenant Apache pour fonctionner en conjonction avec Varnish Cache. Par défaut, Apache écoute sur le port 80, vous devez donc changer le port HTTPD par défaut en 8080 – cela garantira que HTTPD s’exécute derrière le cache Varnish.
Vous pouvez utiliser la commande sed pour changer le port 80 en 8080 comme indiqué.
# sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf
Remarque : De plus, vous devez changer le port dans la configuration de votre hôte virtuel pour chaque site Web que vous souhaitez servir via Varnish. Voici la configuration pour notre site de test (/etc/httpd/conf.d/tecmint.lan.conf).
<VirtualHost *:8080> DocumentRoot "/var/www/html/tecmint.lan/" ServerName www.tecmint.lan # Other directives here </VirtualHost>
12. Ensuite, ouvrez le fichier de configuration systemd de Varnish et trouvez le paramètre ExecStart qui spécifie le port sur lequel Varnish écoute, et changez sa valeur de 6081 à 80 comme indiqué dans la capture d’écran.
# systemctl edit --full varnish
La configuration devrait ressembler à ceci une fois terminée.
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

13. Ensuite, configurez Apache 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 et le port. Voici la configuration backend par défaut, définissez-la pour pointer vers votre serveur de contenu réel.
backend default { .host = "127.0.0.1"; .port = "8080"; }
Si votre serveur backend s’exécute sur un serveur différent avec l’adresse 10.42.1.10, alors le paramètre d’hôte devrait pointer vers cette adresse IP.
backend server1 { .host = "10.42.1.10"; .port = "8080"; }
14. Après avoir effectué toutes les configurations nécessaires, redémarrez HTTPD et le cache Varnish pour effectuer les changements ci-dessus.
# systemctl daemon-reload # systemctl restart httpd # systemctl restart varnish
Étape 4 : Tester le cache Varnish sur Apache
15. Enfin, testez si Varnish est activé et fonctionne avec le service HTTPD en utilisant la commande cURL ci-dessous, qui peut être utilisée pour afficher l’en-tête HTTP.
# curl -I http://localhost
Sortie d’exemple
HTTP/1.1 200 OK Date: Wed, 06 Jan 2021 08:36:07 GMT Server: Apache/2.4.6 (CentOS) Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT ETag: "1321-5058a1e728280" Accept-Ranges: bytes Content-Length: 4897 Content-Type: text/html; charset=UTF-8 X-Varnish: 131085 Age: 0 Via: 1.1 varnish (Varnish/6.5) Connection: keep-alive
Pour plus d’informations, consultez le dépôt Github de Varnish Cache : https://github.com/varnishcache/varnish-cache
Dans ce tutoriel, nous avons expliqué comment configurer le proxy Varnish Cache 6.5 pour le serveur HTTP Apache sur CentOS 7. Si vous avez des questions ou des idées supplémentaires à partager, utilisez le formulaire de retour ci-dessous pour nous écrire.
Source:
https://www.tecmint.com/install-varnish-cache-on-centos-7-for-apache/