Recherche de site Web

Comment installer Varnish Cache 6 pour Nginx sur CentOS/RHEL 8


Varnish Cache (communément appelé Varnish) est un accélérateur HTTP de proxy inverse open source, puissant et rapide, doté d'une architecture moderne et flexible. langage de configuration. Être un proxy inverse signifie simplement qu'il s'agit d'un logiciel que vous pouvez déployer devant votre serveur Web (qui est le serveur d'origine ou le backend) tel que Nginx, pour recevoir les requêtes HTTP des clients et les transmettre au serveur d’origine pour le traitement. Et il transmet la réponse du serveur d'origine aux clients.

Varnish agit comme un intermédiaire entre Nginx et les clients, mais avec certains avantages en termes de performances. Son objectif principal est d'accélérer le chargement de vos applications, en fonctionnant comme un moteur de mise en cache. Il reçoit les demandes des clients et les transmet une fois au backend pour mettre en cache le contenu demandé (stocker les fichiers et les fragments de fichiers en mémoire). Ensuite, toutes les futures demandes de contenu exactement similaire seront traitées à partir du cache.

Cela accélère le chargement de vos applications Web et améliore indirectement les performances globales de votre serveur Web, car Varnish servira le contenu de la mémoire au lieu que Nginx traite les fichiers du disque de stockage.

Outre la mise en cache, Varnish propose également plusieurs autres cas d'utilisation, notamment un routeur de requêtes HTTP, un équilibreur de charge, un pare-feu d'application Web, etc.

Le varnish est configuré à l'aide du Varnish Configuration Language intégré hautement extensible (VCL) qui vous permet d'écrire des politiques sur la manière dont les requêtes entrantes doivent être manipulé. Vous pouvez l'utiliser pour créer des solutions, des règles et des modules personnalisés.

Dans cet article, nous passerons en revue les étapes pour installer le serveur Web Nginx et le Varnish Cache 6 sur un nouveau CentOS 8 ou Serveur RHEL 8. Les utilisateurs de RHEL 8 doivent s'assurer qu'ils activent l'abonnement RedHat.

Pour configurer une pile LEMP complète au lieu d'installer le serveur Web Nginx seul, consultez les guides suivants.

  1. Comment installer le serveur LEMP sur CentOS 8
  2. Comment installer le serveur LEMP sur RHEL 8

Étape 1 : Installer le serveur Web Nginx sur CentOS/RHEL 8

1. Le CentOS/RHEL 8 est livré avec la dernière version du logiciel de serveur Web Nginx, nous allons donc l'installer à partir du référentiel par défaut en utilisant le en suivant les commandes dnf.

dnf update
dnf install nginx

2. Une fois Nginx installé, vous devez démarrer, activer et vérifier l'état à l'aide des commandes systemctl suivantes.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Si vous êtes un peu curieux, vous pouvez également vérifier le socket TCP Nginx, qui s'exécute sur le port 80 par défaut, à l'aide de la commande ss suivante.

ss -tpln

4. Si vous exécutez le pare-feu sur le système, assurez-vous de mettre à jour les règles du pare-feu pour autoriser les requêtes vers un serveur Web.

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

Étape 2 : Installation de Varnish Cache 6 sur CentOS/RHEL 8

5. Le CentOS/RHEL 8 fournit par défaut un module Varnish Cache DNF qui contient la version 6.0 LTS (Support à long terme).

Pour installer le module, exécutez la commande suivante.

dnf module install varnish

6. Une fois l'installation du module terminée, vous pouvez confirmer la version de Varnish installée sur votre système.

varnishd -V

7. Après avoir installé Varnish Cache, la commande exécutable principale installée sous /usr/sbin/varnishd et les fichiers de configuration de Vernis se trouvent dans /etc/varnish/.

Le fichier /etc/varnish/default.vcl est le fichier de configuration principal du vernis écrit en utilisant VCL et /etc/varnish/secret est le fichier du vernis. dossier secret.

8. Ensuite, démarrez le service Varnish, activez-le pour démarrer automatiquement lors du démarrage du système et confirmez qu'il est opérationnel.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Étape 3 : configurer Nginx pour fonctionner avec le cache Varnish

9. Dans cette section, nous montrerons comment configurer le Varnish Cache pour qu'il s'exécute devant Nginx. Par défaut, Nginx écoute sur le port 80, normalement chaque bloc serveur (ou hôte virtuel) est configuré pour écouter sur ce port.

Par exemple, jetez un œil au bloc de serveur nginx par défaut configuré dans le fichier de configuration principal (/etc/nginx/nginx.conf).

vi /etc/nginx/nginx.conf

Recherchez la section de blocage du serveur comme indiqué dans la capture d'écran suivante.

10. Pour exécuter Varnish devant Nginx, vous devez modifier le port Nginx par défaut de 80 à 8080 (ou tout autre port de votre choix).

Cela devrait être fait dans tous les futurs fichiers de configuration de bloc de serveur (généralement créés sous /etc/nginx/conf.d/) pour les sites ou applications Web que vous souhaitez servir via Varnish . .

Par exemple, le bloc serveur de notre site de test tecmint.lan est /etc/nginx/conf.d/tecmint.lan.conf et a la configuration suivante.

server {
        listen       8080;
        server_name  www.tecmint.lan;
        root         /var/www/html/tecmint.lan/;
        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

Important : N'oubliez pas de désactiver le blocage du serveur par défaut en commentant sa section de configuration dans le fichier /etc/nginx/nginx.conf comme indiqué dans la capture d'écran suivante. Cela vous permet de commencer à exécuter d'autres sites Web/applications sur votre serveur, sinon Nginx dirigera toujours les requêtes vers le bloc serveur par défaut.

11. Une fois la configuration terminée, vérifiez le fichier de configuration pour détecter toute erreur et redémarrez le service Nginx pour appliquer les modifications récentes.

nginx -t
systemctl restart nginx

12. Ensuite, pour recevoir les requêtes HTTP des clients, nous devons configurer Varnish pour qu'il s'exécute sur le port 80. Contrairement aux versions précédentes de Varnish Cache où cette modification était effectuée dans le fichier d'environnement Varnish (qui est désormais obsolète), dans les versions 6.0 et supérieures. .

Nous devons apporter les modifications requises dans le fichier de service Varnish. Exécutez la commande suivante pour ouvrir le fichier de service approprié pour le modifier.

systemctl edit --full  varnish

Recherchez la ligne suivante et modifiez la valeur du commutateur -a, qui spécifie l'adresse d'écoute et le port. Définissez le port sur 80 comme indiqué dans la capture d'écran suivante.

Notez que si vous ne spécifiez pas d'adresse, varnishd écoutera sur toutes les interfaces IPv4 et IPv6 disponibles et actives sur le serveur.

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Enregistrez les modifications dans le fichier et quittez.

13. Ensuite, vous devez définir le serveur backend que Varnish visitera pour récupérer le contenu. Cela se fait dans le fichier de configuration principal de Varnish.

vi /etc/varnish/default.vcl 

Recherchez la section de configuration du backend par défaut et remplacez la chaîne « default » par server1 (ou tout autre nom de votre choix pour représenter votre serveur d'origine). Définissez ensuite le port sur 8080 (ou sur le port d'écoute Nginx que vous avez défini dans votre bloc serveur).

backend server1 {
    .host = "127.0.0.1";
    .port = "8080";
}

Pour ce guide, nous exécutons Varnish et Nginx sur le même serveur. Si votre serveur Web Nginx s'exécute sur un autre hôte. Par exemple, un autre serveur avec l'adresse 10.42.0.247, puis définissez le paramètre .host comme indiqué.

backend server1 {
    .host = "10.42.0.247";
    .port = "8080";
}

Enregistrez le fichier et fermez-le.

14. Ensuite, vous devez recharger la configuration du gestionnaire systemd en raison des récentes modifications apportées au fichier du service Varnish, puis redémarrer le service Varnish pour appliquer les modifications comme suit.

systemctl daemon-reload
systemctl restart varnish

15. Confirmez maintenant que Nginx et Varnish écoutent sur les sockets TCP configurés.

ss -tpln

Étape 4 : Test de la configuration du cache de vernis Nginx

16. Ensuite, vérifiez que les pages Web sont servies via le Varnish Cache comme suit. Ouvrez un navigateur Web et naviguez en utilisant l'adresse IP du serveur ou le FDQN, comme indiqué dans la capture d'écran suivante.

http://www.tecmin.lan
OR
http://10.42.0.144

17. Vous pouvez également utiliser la commande curl comme indiqué. Utilisez l'adresse IP de votre serveur ou le nom de domaine complet de votre site Web ou utilisez 127.0.0.1 ou localhost si vous testez localement.

curl -I http:///www.tecmint.lan

Utilitaires utiles d’administration du cache Varnish

18. Dans cette dernière section, nous décrirons brièvement certains des programmes utilitaires utiles fournis avec Varnish Cache, que vous pouvez utiliser pour contrôler varnishd , accédez aux journaux en mémoire et aux statistiques globales et bien plus encore.

vernisadm

varnishadm un utilitaire pour contrôler une instance Varnish en cours d'exécution. Il établit une connexion CLI avec vernis. Par exemple, vous pouvez l'utiliser pour répertorier les backends configurés, comme indiqué dans la capture d'écran suivante (lire man vernis adm pour plus d'informations).

varnishadm
varnish> backend.list

journal de vernis

L'utilitaire varnishlog permet d'accéder aux données spécifiques à la requête. Il offre des informations sur des clients et des demandes spécifiques (lisez man vernislog pour plus d'informations).

varnishlog

vernisstat

Un varnishstat également connu sous le nom de statistiques de Varnish, qui vous donne un aperçu des performances actuelles de Varnish en donnant accès à des statistiques en mémoire telles que les succès et les échecs du cache, des informations sur le stockage , discussions créées, objets supprimés (lisez man vernisstat pour plus d'informations).

varnishstat 

dessus vernis

Un utilitaire varnishtop lit les journaux de la mémoire partagée et présente une liste continuellement mise à jour des entrées de journal les plus courantes (lisez man vernistop pour plus d'informations).

varnishtop 

vernisseur

Un utilitaire varnishhist (historique des vernis) analyse les journaux de vernis et génère un histogramme mis à jour en permanence montrant la répartition des n dernières requêtes selon leur traitement ( lisezman polishhist pour plus d'informations).

varnishhist

C'est tout! Dans ce guide, nous avons montré comment installer Varnish Cache et l'exécuter devant le serveur Nginx HTTP pour accélérer la diffusion de contenu Web dans CentOS/RHEL 8.

Toutes les réflexions ou questions concernant ce guide peuvent être partagées en utilisant le formulaire de commentaires ci-dessous. Pour plus d’informations, lisez la documentation Varnish Cache.

Le principal inconvénient de Varnish Cache est son manque de support natif pour HTTPS. Pour activer HTTPS sur votre site Web/application, vous devez configurer un proxy de terminaison SSL/TLS pour qu'il fonctionne conjointement avec Varnish Cache afin de protéger votre site. Dans notre prochain article, nous montrerons comment activer HTTPS pour Varnish Cache à l'aide de Hitch sur CentOS/RHEL 8.