GNU/Linux >> Tutoriels Linux >  >> Cent OS

Installer Varnish Cache 6 pour Apache/Nginx sur CentOS 8

Varnish Cache est un puissant proxy HTTP inverse utilisé pour accélérer les applications Web qui est disponible en tant que logiciel Open Source. Varnish met en cache le contenu statique et dynamique. Il gère toutes les requêtes entrantes avant qu'elles n'atterrissent sur le backend de votre serveur Web. Il se situe entre un navigateur Web et un serveur Web Apache ou Nginx. Le cache Varnish stocke toutes les demandes de page entrantes en mémoire afin que les serveurs Web n'aient pas à créer la même page Web encore et encore.

Dans cet article, nous allons vous montrer comment installer le cache Varnish avec Apache et Nginx sur CentOS 8.

Prérequis

  • Un serveur exécutant CentOS 8.
  • Un mot de passe root est configuré sur votre serveur.

Mise en route

Avant de commencer, il est recommandé de mettre à jour vos packages système vers la dernière version. Vous pouvez les mettre à jour en exécutant la commande suivante :

dnf update -y

Une fois tous les packages mis à jour, vous pouvez passer à l'étape suivante.

Installer le vernis

Par défaut, le package Varnish est inclus dans le dépôt par défaut de CentOS 8. Vous pouvez l'installer en exécutant la commande suivante :

dnf install varnish -y

Après avoir installé Varnish, modifiez le fichier de configuration par défaut de Varnish et définissez l'adresse sauvegardée du serveur Web Nginx ou Apache.

nano /etc/varnish/default.vcl

Modifiez les lignes suivantes :

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

Enregistrez et fermez le fichier lorsque vous avez terminé.

Configurer le vernis

Par défaut, Varnish écoute sur le port 6081. Vous devrez donc configurer Varnish pour écouter sur le port 80. Vous pouvez le configurer en éditant le fichier vernis.service :

nano /lib/systemd/system/varnish.service

Recherchez la ligne suivante :

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

Remplacé par la ligne suivante :

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

Enregistrez et fermez le fichier puis rechargez le démon systemd pour appliquer les modifications :

systemctl daemon-reload

Ensuite, démarrez le service Varnish et activez-le au redémarrage du système avec la commande suivante :

systemctl start varnish
systemctl enable varnish

Vous pouvez également vérifier l'état du vernis avec la commande suivante :

systemctl status varnish

Vous devriez obtenir 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 Fri 2021-03-12 04:17:32 EST; 4s ago
  Process: 6391 ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m (code=exited, status=0/SUCCESS)
 Main PID: 6392 (varnishd)
    Tasks: 217
   Memory: 99.5M
   CGroup: /system.slice/varnish.service
           ??6392 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
           ??6402 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Mar 12 04:17:32 masternode systemd[1]: Starting Varnish Cache, a high-performance HTTP accelerator...
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Mar 12 04:17:32 masternode varnishd[6392]: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7
Mar 12 04:17:32 masternode varnishd[6392]: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Child (6402) Started
Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) Started
Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) said Child starts
Mar 12 04:17:32 masternode systemd[1]: Started Varnish Cache, a high-performance HTTP accelerator.

À ce stade, Varnish est démarré et écoute sur le port 80. Vous pouvez le vérifier avec la commande suivante :

ss -antpl | grep varnishd

Vous devriez obtenir le résultat suivant :

LISTEN    0         10               127.0.0.1:34977            0.0.0.0:*        users:(("varnishd",pid=1532,fd=11))                                            
LISTEN    0         128                0.0.0.0:80               0.0.0.0:*        users:(("cache-main",pid=1542,fd=6),("varnishd",pid=1532,fd=6))                
LISTEN    0         128                   [::]:80                  [::]:*        users:(("cache-main",pid=1542,fd=7),("varnishd",pid=1532,fd=7))                
LISTEN    0         10                   [::1]:34909               [::]:*        users:(("varnishd",pid=1532,fd=10))                                            

À ce stade, Varnish est installé et configuré. Vous pouvez maintenant passer à l'étape suivante.

Installer et configurer Nginx pour qu'il fonctionne avec Varnish

Tout d'abord, vous devrez installer le package Nginx sur votre serveur. Vous pouvez l'installer avec la commande suivante :

dnf install nginx -y

Une fois installé, vous devrez changer le port d'écoute Nginx de 80 à 8080. Vous pouvez le faire en modifiant le fichier de configuration par défaut de Nginx :

nano /etc/nginx/nginx.conf

Modifiez les lignes suivantes :

        listen       8080 default_server;
        listen       [::]:8080 default_server;

Enregistrez et fermez le fichier puis vérifiez le Nginx pour toute erreur de syntaxe en utilisant la commande suivante :

nginx -t

Vous devriez obtenir le résultat suivant :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, démarrez le service Nginx et activez-le au redémarrage du système :

systemctl start nginx
systemctl enable nginx

Vous pouvez également vérifier le port d'écoute Nginx avec la commande suivante :

ss -antpl | grep 8080

Vous devriez obtenir le résultat suivant :

LISTEN    0         128                0.0.0.0:8080             0.0.0.0:*        users:(("nginx",pid=5569,fd=8),("nginx",pid=5568,fd=8))                        
LISTEN    0         128                   [::]:8080                [::]:*        users:(("nginx",pid=5569,fd=9),("nginx",pid=5568,fd=9))                        

À ce stade, le cache Varnish est installé et configuré pour transmettre toutes les requêtes arrivant sur le port 80 au serveur Web Nginx qui écoute sur le port 8080.

Vous pouvez vérifier si le cache Varnish fonctionne ou non avec la commande suivante :

curl -I http://localhost

Vous devriez obtenir le résultat suivant :

HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Fri, 12 Mar 2021 09:18:32 GMT
Content-Type: text/html
Content-Length: 4057
Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT
ETag: "5d9bab28-fd9"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Accept-Ranges: bytes
Connection: keep-alive

Installer et configurer Apache pour qu'il fonctionne avec Varnish

Tout d'abord, vous devrez installer le package de serveur Web Apache sur votre système. Vous pouvez l'installer avec la commande suivante :

dnf install httpd -y

Après avoir installé Apache, modifiez le fichier de configuration par défaut d'Apache et changez le port d'écoute de 80 à 8080.

nano /etc/httpd/conf/httpd.conf

Modifiez la ligne suivante :

Listen 8080

Enregistrez et fermez le fichier puis démarrez le service Apache et activez-le au redémarrage du système avec la commande suivante :

systemctl start httpd
systemctl enable httpd

Vous pouvez également vérifier le port d'écoute d'Apache avec la commande suivante :

ss -antpl | grep httpd

Vous devriez obtenir le résultat suivant :

LISTEN    0         128                      *:8080                   *:*        users:(("httpd",pid=7556,fd=4),("httpd",pid=7555,fd=4),("httpd",pid=7554,fd=4),("httpd",pid=7552,fd=4))

À ce stade, le cache Varnish est installé et configuré pour transmettre toutes les requêtes arrivant sur le port 80 au serveur Web Apache qui écoute sur le port 8080.

Vous pouvez vérifier si le cache Varnish fonctionne ou non avec la commande suivante :

curl -I http://localhost

Vous devriez obtenir le résultat suivant :

Date: Fri, 12 Mar 2021 09:21:14 GMT
Server: Apache/2.4.37 (centos)
Content-Location: index.html.zh-CN
Vary: negotiate,accept-language
TCN: choice
Last-Modified: Fri, 14 Jun 2019 03:37:43 GMT
ETag: "fa6-58b405e7d6fc0;5bd5365602e05"
Accept-Ranges: bytes
Content-Length: 4006
Content-Type: text/html; charset=UTF-8
Content-Language: zh-cn
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Connection: keep-alive

Travailler avec la ligne de commande Varnish

Varnish est livré avec plusieurs utilitaires utiles qui vous aident à surveiller et à contrôler Varnish.

vernisadm est un utilitaire de ligne de commande utilisé pour répertorier les backends configurés.

varnishadm

Vous devriez voir le résultat suivant :

200        
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7

Type 'help' for command list.
Type 'quit' to close CLI session.

Maintenant, exécutez la commande suivante pour répertorier tous les backends :

varnish> backend.list

Vous devriez voir le résultat suivant :

200        
Backend name                   Admin      Probe                Last updated
boot.default                   probe      Healthy (no probe)   Sat, 13 Mar 2021 03:00:02 GMT

journal de vernis

L'utilitaire vernissage est utilisé pour afficher les journaux de toutes les requêtes des utilisateurs.

varnishlog

Vous devriez obtenir le résultat suivant :

*   << BeReq    >> 6         
-   Begin          bereq 5 fetch
-   VCL_use        boot
-   Timestamp      Start: 1615604631.507187 0.000000 0.000000
-   BereqMethod    GET
-   BereqURL       /
-   BereqProtocol  HTTP/1.1
-   BereqHeader    Host: 69.87.218.214
-   BereqHeader    Upgrade-Insecure-Requests: 1
-   BereqHeader    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
-   BereqHeader    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
-   BereqHeader    Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
-   BereqHeader    X-Forwarded-For: 106.213.193.241
-   BereqHeader    Accept-Encoding: gzip
-   BereqHeader    X-Varnish: 6
-   VCL_call       BACKEND_FETCH
-   VCL_return     fetch
-   BackendOpen    31 boot.default 127.0.0.1 8080 127.0.0.1 58860
-   BackendStart   127.0.0.1 8080
-   Timestamp      Bereq: 1615604631.507458 0.000270 0.000270
-   Timestamp      Beresp: 1615604631.507844 0.000657 0.000386
-   BerespProtocol HTTP/1.1
-   BerespStatus   200
-   BerespReason   OK
-   BerespHeader   Server: nginx/1.14.1
-   BerespHeader   Date: Sat, 13 Mar 2021 03:03:51 GMT
-   BerespHeader   Content-Type: text/html
-   BerespHeader   Content-Length: 4057
-   BerespHeader   Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT

stat de vernis

La commande vernisstat vous fournit des informations sur les statistiques en mémoire, le stockage, les threads créés et les objets supprimés.

varnishstat

Vous devriez voir l'écran suivant :

vernis dessus

La commande vernistop lit les journaux de la mémoire partagée de vernis et présente une liste continuellement mise à jour des entrées de journal les plus courantes.

varnishtop

Vous devriez voir l'écran suivant :

vernisseur

Varnishhist analyse les journaux de vernis et imprime les n dernières requêtes en fonction de leur traitement.

varnishhist

Vous devriez voir l'écran suivant :

Conclusion

Dans le guide ci-dessus, vous avez appris comment installer et configurer le cache Varnish avec le serveur Web Apache et Nginx. Vous pouvez désormais implémenter le cache Varnish dans l'environnement de production et accélérer les performances de votre site Web. N'hésitez pas à me demander si vous avez des questions.


Cent OS
  1. Comment installer un certificat SSL sur Apache pour CentOS 7

  2. Comment installer et configurer Varnish Cache 6 avec Nginx sur CentOS 8

  3. Comment installer le cache de vernis sur CentOS

  4. Comment installer Varnish Cache 4 sur CentOS 7

  5. Comment installer le cache de vernis sur CentOS 8

Comment installer Varnish Cache pour Apache sur CentOS/RHEL 8

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

Comment accélérer Nginx avec Varnish Cache sur CentOS 7

Comment accélérer Apache avec Varnish Cache sur CentOS 7

Comment installer le cache de vernis sur CentOS 7

Comment installer Varnish sur CentOS 7