22
0
Fork 0

relecture

This commit is contained in:
gcolpart 2016-10-30 20:02:10 +01:00
parent f481f6dc15
commit 833bff1f38
1 changed files with 17 additions and 16 deletions

View File

@ -24,28 +24,29 @@ Copyright (c) 2006-2014 Varnish Software AS
<http://www.varnish-cache.org/docs/4.0/reference/varnishd.html>
`/etc/default/varnish` :
~~~
# rm /etc/default/varnish*
# cp -a /lib/systemd/system/varnish.service /etc/systemd/system
# systemctl daemon-reload
~~~
`/etc/systemd/system/varnish.service` :
~~~
umask 022
DAEMON_OPTS="-a 0.0.0.0:80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,2G \
-p thread_pools=<Nombre de cores CPU> \
-p thread_pool_add_delay=2 \
-p thread_pool_min=500 \
-p thread_pool_max=5000"
ExecStart=/usr/sbin/varnishd -a 0.0.0.0:80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,2G -p thread_pools=<Nombre de cores CPU> -p thread_pool_add_delay=2 -p thread_pool_min=500 -p thread_pool_max=5000
~~~
Détails de certaines options :
* `-a` : spécifie {IP,port} sur lequel Varnish écoute pour les requêtes HTTP. On peut ainsi spécifier une IP secondaire pour cœxister avec un autre service HTTP (Apache, Nginx) sur le port 80 (*-a 192.0.2.1:80*) ou alors faire écouter Varnish uniquement en local (*-a 127.0.0.1:8080*) ou encore le faire écouter de partout (*-a 0.0.0.0:80*)
* `-a` : spécifie *IP*:*port* sur lequel Varnish écoute pour les requêtes HTTP. On peut ainsi spécifier une IP secondaire pour cœxister avec un autre service HTTP (Apache, Nginx) sur le port 80 (*-a 192.0.2.1:80*) ou faire écouter Varnish uniquement en local (*-a 127.0.0.1:8080*) ou alors le faire écouter de partout (*-a 0.0.0.0:80*) ou même spécifier plusieurs IP (*-a 0.0.0.0:80,127.0.0.1:81*)
* `-s` : spécifie où est stocké le cache. Cela peut être en mémoire (*-s malloc,2G*) et/ou dans un fichier (*-s file,varnish_storage.bin,8G*)
* `-T` : spécifie l'interface d'admin web de Varnish
* `-f` : spécifie le fichier des règles Varnish au format VCL (*Varnish Configuration Language*)
Note 1 : le fichier */etc/default/varnish* [n'est malheureusement plus utilisé avec Systemd](https://bugs.debian.org/749272)
Note 2 : avant Debian 8, [Varnish ne supportait pas d'être lancé avec *umask 077*, c'est corrigé en Debian Jessie](https://bugs.debian.org/696504)
### default.vcl
Les règles Varnish définissent la mise en cache en utilisant une syntaxe particulière : le VCL (*Varnish Configuration Language*).
@ -59,7 +60,7 @@ backend default {
}
~~~
Pour vérifier ses règles :
Pour vérifier ses règles (ceci est fait par défaut lors d'un redémarrage) :
~~~
# varnishd -Cf /etc/varnish/default.vcl
@ -100,7 +101,7 @@ Voyons un exemple simple :
sub vcl_recv {
if (req.http.host ~ "(www\.example\.com|example\.com)") {
set req.backend = default;
set req.backend_hint = default;
}
if (req.url ~ "^/images") {
@ -109,7 +110,7 @@ sub vcl_recv {
}
sub vcl_backend_response {
if (req.url ~ "\.(png|gif|jpg)$") {
if (bereq.url ~ "\.(png|gif|jpg)$") {
unset beresp.http.set-cookie;
set beresp.ttl = 3600s;
}
@ -296,7 +297,7 @@ Voici un certain nombre d'actions possibles :
~~~
# Renvoyer vers un backend
set req.backend = baz;
set req.backend_hint = baz;
# Supprimer les cookies dans la requête
unset req.http.cookie;
remove req.http.cookie;