Aller au contenu principal

Varnish

Présentation

Varnish Cache est un accélérateur HTTP placé en frontal de votre application. Il met en cache les réponses du backend afin de réduire la charge et d'améliorer les temps de réponse.


Accès et compte utilisateur

Un compte dédié vous est attribué lors du déploiement :

ÉlémentValeur
Compte utilisateuradmin<custcode>
Exempleadminxx1234

Ce compte dispose des droits nécessaires pour gérer Varnish sans accès root.


VCL personnalisé

Emplacement du fichier

Toute personnalisation VCL doit être placée dans le fichier suivant :

/home/admin<custcode>/sites-enabled/varnish/custom.vcl

Ce fichier est automatiquement inclus dans la configuration Varnish principale. Il n'est jamais écrasé lors des mises à jour du déploiement.

Exemple de contenu custom.vcl

sub vcl_recv {
# Forcer le cache sur les assets statiques
if (req.url ~ "\.(css|js|png|jpg|gif|ico|woff2)$") {
unset req.http.Cookie;
return(hash);
}

# Ne pas mettre en cache les URLs d'admin
if (req.url ~ "^/admin") {
return(pass);
}
}

sub vcl_backend_response {
# TTL de 1 heure pour les assets statiques
if (bereq.url ~ "\.(css|js|png|jpg|gif|ico|woff2)$") {
set beresp.ttl = 1h;
}
}

Appliquer les modifications VCL

Après modification du fichier custom.vcl, rechargez la configuration :

# Charger la nouvelle configuration
sudo varnishadm vcl.load new_config /etc/varnish/default.vcl

# Activer la nouvelle configuration
sudo varnishadm vcl.use new_config

Commandes disponibles

Le compte admin<custcode> peut exécuter les commandes varnishadm avec sudo.

Gestion du cache

# Purger une URL spécifique
sudo varnishadm ban "req.url == \"/ma-page\""

# Purger toutes les URLs d'un domaine
sudo varnishadm ban "req.http.host == \"example.com\""

# Purger tout le cache
sudo varnishadm ban "req.url ~ \".\""

Gestion de la configuration VCL

# Lister les configurations VCL chargées
sudo varnishadm vcl.list

# Charger une nouvelle configuration
sudo varnishadm vcl.load <nom> /etc/varnish/default.vcl

# Activer une configuration
sudo varnishadm vcl.use <nom>

# Afficher le contenu d'une configuration
sudo varnishadm vcl.show <nom>

État des backends

# Lister les backends et leur état de santé
sudo varnishadm backend.list

# Forcer un backend en état sain
sudo varnishadm backend.set_health <backend> healthy

# Forcer un backend hors service
sudo varnishadm backend.set_health <backend> sick

# Repasser en détection automatique
sudo varnishadm backend.set_health <backend> auto

Statistiques et diagnostic

# Statistiques en temps réel
sudo varnishadm stats

# État du processus Varnish
sudo varnishadm status

# Consulter les logs d'accès en temps réel
varnishlog

# Statistiques globales
varnishstat

Paramètres de déploiement

VariableDéfautDescription
varnish_public_port80Port d'écoute (6081 avec HAProxy)
varnish_malloc_size4gMémoire allouée au cache