Recherche de site Web

Installez Varnish Cache 5.2 pour améliorer les performances d'Apache sur CentOS 7


Varnish Cache (communément appelé Varnish) est un accélérateur HTTP de proxy inverse open source et populaire destiné à accélérer les serveurs Web. Il est conçu pour les points de terminaison d'API excessivement utilisés ainsi que pour les sites dynamiques qui diffusent un contenu massif et connaissent un trafic élevé.

Cela aide essentiellement à réduire la charge du processeur ; 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 dans la RAM. Un certain nombre de grandes entreprises l'utilisent, notamment Facebook, Twitter et Wikipedia pour n'en citer que quelques-unes.

Exigences

  1. Un CentOS 7 avec Apache installé
  2. Un CentOS 7 avec une adresse IP statique

Dans cet article, je vais vous 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. Installez d'abord le serveur HTTP Apache à partir des référentiels de logiciels CentOS par défaut à l'aide du gestionnaire de packages 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 du système pour autoriser les paquets entrants sur le port 80 à l'aide des commandes ci-dessous.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Étape 2 : Installer Varnish Cache sur CentOS 7

4. Il existe désormais des packages 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 Varnish Cache.

Avant cela, vous devez activer le référentiel EPEL pour installer plusieurs packages de dépendances, comme indiqué.

yum install -y epel-release

5. Ensuite, installez pygpgme, un package pour gérer les signatures GPG et yum-utils, un ensemble 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 et version Linux :

[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 package de cache de vernis (n'oubliez pas d'accepter la clé GPG en tapant y ou oui lors de l'installation du package) :

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 le nom /usr/sbin/varnishd et les fichiers de configuration de Vernis se trouvent dans /etc/varnish/ :

  • /etc/varnish/default.vcl – il s'agit du fichier de configuration principal du vernis, il est écrit en utilisant le langage de configuration Vanish (VCL).

9. Démarrez maintenant le service de vernis, activez-le pour qu'il démarre automatiquement lors du démarrage du système et vérifiez son état pour vous assurer qu'il est opérationnel 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 qu'il fonctionne avec le cache Varnish

11. Configurez maintenant Apache pour qu'il fonctionne conjointement avec Varnish Cache. Par défaut, Apache écoute sur le port 80, vous devez modifier le port HTTPD par défaut en 8080 – cela garantira que HTTPD s'exécute derrière la mise en 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 : vous devez également modifier le port de la configuration de votre hôte virtuel pour chaque site Web que vous souhaitez servir via Varnish. Voici la configuration de 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 de Vernis Systemd et recherchez le paramètre ExecStart qui spécifie le port sur lequel Varnish écoute, et modifiez 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 

Recherchez la section backend et définissez l'adresse IP et le port de l'hôte. Vous trouverez ci-dessous la configuration backend par défaut, définissez-la pour qu'elle pointe 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 autre serveur avec l'adresse 10.42.1.10, le paramètre host doit 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 appliquer les modifications 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 à l'aide de la commande cURL ci-dessous, qui peut être utilisée pour afficher l'en-tête HTTP.

curl -I http://localhost
Exemple de sortie
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 référentiel Github Varnish Cache : https://github.com/varnishcache/varnish-cache

Dans ce didacticiel, 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 commentaires ci-dessous pour nous répondre. .