Varnish Cache · 7 min read · Feb 12, 2026

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, disponible en tant que logiciel Open-Source. Varnish met en cache à la fois le contenu statique et dynamique. Il gère toutes les requêtes entrantes avant qu’elles n’atteignent votre serveur web. Il se situe entre un navigateur web et un serveur web Apache ou Nginx. Le cache Varnish stocke toutes les requêtes de page entrantes en mémoire, de sorte que les serveurs web n’ont 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 configuré sur votre serveur.

Prise en main

Avant de commencer, il est recommandé de mettre à jour les paquets de votre 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 paquets mis à jour, vous pouvez passer à l’étape suivante.

Installer Varnish

Par défaut, le paquet 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, éditez le fichier de configuration par défaut de Varnish et définissez l’adresse du serveur web Nginx ou Apache.

nano /etc/varnish/default.vcl

Changez les lignes suivantes :

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

Enregistrez et fermez le fichier lorsque vous avez terminé.

Configurer Varnish

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 varnish.service :

nano /lib/systemd/system/varnish.service

Trouvez la ligne suivante :

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

Remplacez-la 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 pour qu’il démarre au redémarrage du système avec la commande suivante :

systemctl start varnish  
systemctl enable varnish

Vous pouvez également vérifier l’état de Varnish avec la commande suivante :

systemctl status varnish

Vous devriez obtenir la sortie suivante :

? varnish.service - Varnish Cache, un accélérateur HTTP haute performance
   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, un accélérateur HTTP haute performance...
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, un accélérateur HTTP haute performance.

À 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 la sortie suivante :

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 travailler avec Varnish

Tout d’abord, vous devrez installer le paquet 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 de Nginx de 80 à 8080. Vous pouvez le faire en éditant le fichier de configuration par défaut de Nginx :

nano /etc/nginx/nginx.conf

Changez les lignes suivantes :

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

Enregistrez et fermez le fichier, puis vérifiez la syntaxe de Nginx pour toute erreur à l’aide de la commande suivante :

nginx -t

Vous devriez obtenir la sortie suivante :

nginx: le fichier de configuration /etc/nginx/nginx.conf a une syntaxe correcte
nginx: le test du fichier de configuration /etc/nginx/nginx.conf est réussi

Ensuite, démarrez le service Nginx et activez-le pour qu’il démarre au redémarrage du système :

systemctl start nginx  
systemctl enable nginx

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

ss -antpl | grep 8080

Vous devriez obtenir la sortie suivante :

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 transférer toutes les requêtes arrivant sur le port 80 vers le 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 la sortie suivante :

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 travailler avec Varnish

Tout d’abord, vous devrez installer le paquet du serveur web Apache sur votre système. Vous pouvez l’installer avec la commande suivante :

dnf install httpd -y

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

nano /etc/httpd/conf/httpd.conf

Changez la ligne suivante :

Listen 8080

Enregistrez et fermez le fichier, puis démarrez le service Apache et activez-le pour qu’il démarre 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 la sortie suivante :

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 transférer toutes les requêtes arrivant sur le port 80 vers le 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 la sortie suivante :

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.

varnishadm est un utilitaire en ligne de commande utilisé pour lister les backends configurés.

varnishadm

Vous devriez voir la sortie suivante :

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 lister tous les backends :

varnish> backend.list

Vous devriez voir la sortie suivante :

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

varnishlog

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

varnishlog

Vous devriez obtenir la sortie suivante :

*   << 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

varnishstat

La commande varnishstat 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 :

Statistiques Varnish

varnishtop

La commande varnishtop lit les journaux de mémoire partagée de varnishd et présente une liste mise à jour en continu des entrées de journal les plus courantes.

varnishtop

Vous devriez voir l’écran suivant :

varnishtop

varnishhist

Varnishhist analyse les journaux de varnish et imprime les dernières n requêtes par leur traitement.

varnishhist

Vous devriez voir l’écran suivant :

varnishhist

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 maintenant mettre en œuvre le cache Varnish dans l’environnement de production et améliorer les performances de votre site web. N’hésitez pas à me poser des questions si vous en avez.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.