From 722bce67763a4381dd101e2185a236395b433a4b Mon Sep 17 00:00:00 2001 From: Gregory Colpart Date: Fri, 17 Sep 2021 14:39:11 +0200 Subject: [PATCH] ajout des infos pour Vary + ajout doc Fastly --- HowtoVarnish.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/HowtoVarnish.md b/HowtoVarnish.md index a1bc1165..1832ab3f 100644 --- a/HowtoVarnish.md +++ b/HowtoVarnish.md @@ -4,6 +4,7 @@ categories: web HA cache ... * Documentation : +* VCL Reference (basé sur un fork de Fastly) : [Varnish](https://www.varnish-cache.org/) est un reverse-proxy HTTP. Il se met typiquement devant des serveurs HTTP et garde en cache les réponses autant que possible. Il gère également (un peu) le load-balancing entre les serveurs HTTP. @@ -439,6 +440,26 @@ sub vcl_backend_response { À noter que l'on peut définir le TTL par défaut via l'option `-t` de [#varnishd]() mais on déconseille de le faire pour éviter toute confusion. +### vcl_hash / Vary: + +L'action `return (hash)` est le défaut de la sous-routine `vcl_recv` : cela fait passer le contenu dans la sous-routine `vcl_hash` qui stocke le contenu renvoyé afin de le resservir si applicable. Par défaut cela indexe le contenu grâce à l'URL et le `Host:` (pour gérer du multi-domaine) : + +~~~ +sub vcl_hash { + hash_data(req.url); + if (req.http.host) { + hash_data(req.http.host); + } else { + hash_data(server.ip); + } + return (lookup); +} +~~~ + +Cela n'est pas explicite mais si le serveur HTTP renvoie un entête `Vary:` (par exemple, `Vary: Accept-Encoding` ou `Vary: User-Agent`), +alors Varnish va automatiquement utiliser ce paramètre pour indexer le contenu, comme si l'on rajoutait un `hash_data()` sur les valeurs de `Vary:`. + + ### Purge du cache On peut purger le cache en ligne de commande.