diff --git a/HowtoVarnish.md b/HowtoVarnish.md index ca4632f6..98faa03b 100644 --- a/HowtoVarnish.md +++ b/HowtoVarnish.md @@ -735,12 +735,43 @@ Un reload ne suffit parfois pas, un restart sera nécessaire dans certains cas. ### Temps d'attente du client HTTP ? -Quand un client HTTP interroge Varnish, il va le mettre en attente afin d'interroger le serveur HTTP final (si l'objet n'est pas caché). Pendant que le serveur HTTP final renvoie l'objet demandé à Varnish, le client HTTP est toujours mis en attente, le contenu lui sera renvoyé seulement une fois l'objet reçu à 100% par Varnish. Cela peut poser différents problèmes : dans le cas d'une grosse vidéo le démarrage sera lent, si le timeout du client HTTP est bas il peut fermer la connexion trop tôt, etc. Pour contourner ce problème, on peut utiliser le return *(pipe)*. +Quand un client HTTP interroge Varnish, il va le mettre en attente afin d'interroger le serveur HTTP final (si l'objet n'est pas caché). Pendant que le serveur HTTP final renvoie l'objet demandé à Varnish, le client HTTP est toujours mis en attente, le contenu lui sera renvoyé seulement une fois l'objet reçu à 100% par Varnish. Cela peut poser différents problèmes : dans le cas d'une grosse vidéo le démarrage sera lent, si le timeout du client HTTP est bas il peut fermer la connexion trop tôt, etc. Pour contourner ce problème, on peut utiliser le return *(pipe)* : + +~~~ +if (req.url ~ ".mp4") { + return (pipe); +} +~~~ ### À savoir -Avant Debian 8, Varnish ne supportait pas d’être lancé avec umask 077, c’est corrigé en Debian Jessie +Avant Debian 8, Varnish ne supportait pas d’être lancé avec umask 077, c’est corrigé en Debian Jessie. +Il faut donc impérativement faire : ~~~ # echo "umask 022" >> /etc/default/varnish ~~~ + +### Debian 7 + +Sous Debian 7 (Wheezy), Varnish 3 a pas mal de différences : + +* il faut forcer l'umask à 022 (voir ci-dessus) +* la sous-routine *vcl_backend_response* était appelée *vcl_fetch* +* pour avoir un entête HTTP X-Cache avec HIT ou MISS, il faut modifier la sous-routine *vcl_deliver* ainsi : + +~~~ +sub vcl_deliver { + + if (obj.hits > 0) { + set resp.http.X-Cache = "HIT"; + set resp.http.X-Cache-Hits = obj.hits; + } + else { + set resp.http.X-Cache = "MISS"; + } + + return (deliver); +} +~~~ +