Mise a jour pour Debian 10
This commit is contained in:
parent
2c2ea37d2e
commit
34ece8efca
|
@ -3,9 +3,9 @@ title: Howto Varnish
|
|||
categories: web HA cache
|
||||
...
|
||||
|
||||
* Documentation : <https://www.varnish-cache.org/docs/4.0/>
|
||||
* Documentation : <https://www.varnish-cache.org/docs/6.1/>
|
||||
|
||||
Varnish 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.
|
||||
[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.
|
||||
|
||||
## Installation
|
||||
|
||||
|
@ -13,49 +13,59 @@ Varnish est un reverse-proxy HTTP. Il se met typiquement devant des serveurs HTT
|
|||
# apt install varnish
|
||||
|
||||
# varnishd -V
|
||||
varnishd (varnish-4.0.2 revision bfe7cd1)
|
||||
varnishd (varnish-6.1.1 revision efc2f6c1536cf2272e471f5cff5f145239b19460)
|
||||
Copyright (c) 2006 Verdens Gang AS
|
||||
Copyright (c) 2006-2014 Varnish Software AS
|
||||
Copyright (c) 2006-2015 Varnish Software AS
|
||||
~~~
|
||||
|
||||
## Configuration de base
|
||||
|
||||
### varnishd
|
||||
|
||||
Le fichier `/etc/default/varnish` [n'est plus utilisé en Debian 8 avec Systemd](https://bugs.debian.org/749272). Malheureusement cela provoque un bug : le script `/usr/share/varnish/reload-vcl` l'utilise toujours... pour éviter toute confusion, on supprime */etc/default/varnish* et l'on remplace *ExecReload=* par un script minimal.
|
||||
Le fichier `/etc/default/varnish` [n'est plus utilisé avec Systemd](https://bugs.debian.org/749272). Pour éviter toute confusion, on supprime ces fichiers :
|
||||
|
||||
~~~
|
||||
# rm /etc/default/varnish*
|
||||
~~~
|
||||
|
||||
Pour modifier la configuration, on copie l'unité Systemd :
|
||||
|
||||
~~~
|
||||
# cp -a /lib/systemd/system/varnish.service /etc/systemd/system
|
||||
~~~
|
||||
|
||||
`/etc/systemd/system/varnish.service` (ne pas oublier de `systemctl daemon-reload` à chaque modification) :
|
||||
Puis l'on personnalise la configuration via `/etc/systemd/system/varnish.service` (ne pas oublier de `systemctl daemon-reload` à chaque modification) :
|
||||
|
||||
~~~
|
||||
ExecStart=/usr/sbin/varnishd -F -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
|
||||
ExecReload=/etc/varnish/reload-vcl.sh
|
||||
~~~
|
||||
|
||||
`/etc/varnish/reload-vcl.sh` (à mettre en *chmod 700* bien sûr) :
|
||||
|
||||
~~~{.bash}
|
||||
#!/bin/sh
|
||||
UUID=`cat /proc/sys/kernel/random/uuid`
|
||||
/usr/sbin/varnishd -C -f /etc/varnish/default.vcl >/dev/null \
|
||||
&& /usr/bin/varnishadm -T localhost:6082 -S /etc/varnish/secret "vcl.load vcl_$UUID /etc/varnish/default.vcl" \
|
||||
&& /usr/bin/varnishadm -T localhost:6082 -S /etc/varnish/secret "vcl.use vcl_$UUID"
|
||||
~~~
|
||||
|
||||
Détails de certaines options de [varnishd](http://www.varnish-cache.org/docs/4.0/reference/varnishd.html) :
|
||||
Détails de certaines options de [varnishd](http://www.varnish-cache.org/docs/6.1/reference/varnishd.html) :
|
||||
|
||||
* `-a` : spécifie *IP*:*port* sur lequel Varnish écoute pour les requêtes HTTP. On peut ainsi spécifier une IP secondaire pour coexister 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*)
|
||||
* `-T` : spécifie l'interface d'admin de Varnish, accessible avec `varnishadm`
|
||||
* `-f` : spécifie le fichier des règles Varnish au format VCL (*Varnish Configuration Language*)
|
||||
* `-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*)
|
||||
|
||||
Note : avant Debian 8, [Varnish ne supportait pas d'être lancé avec *umask 077*, c'est corrigé en Debian Jessie](https://bugs.debian.org/696504)
|
||||
> *Note* : Pour Debian 8, le script `/usr/share/varnish/reload-vcl` utilise toujours `/etc/default/varnish`... on remplace donc `ExecReload=` par un script minimal :
|
||||
>
|
||||
> ~~~
|
||||
> ExecReload=/etc/varnish/reload-vcl.sh
|
||||
> ~~~
|
||||
>
|
||||
> avec `/etc/varnish/reload-vcl.sh` (à mettre en *chmod 700* bien sûr) :
|
||||
>
|
||||
> ~~~{.bash}
|
||||
> #!/bin/sh
|
||||
> UUID=`cat /proc/sys/kernel/random/uuid`
|
||||
> /usr/sbin/varnishd -C -f /etc/varnish/default.vcl >/dev/null \
|
||||
> && /usr/bin/varnishadm -T localhost:6082 -S /etc/varnish/secret "vcl.load vcl_$UUID /etc/varnish/default.vcl" \
|
||||
> && /usr/bin/varnishadm -T localhost:6082 -S /etc/varnish/secret "vcl.use vcl_$UUID"
|
||||
> ~~~
|
||||
|
||||
> *Note* : 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
|
||||
|
||||
|
|
Loading…
Reference in a new issue