LoadBalancing avec Sticky bit

La documentation Varnish parle de loadbalancing aléatoire et Round Robin, mais n’indique pas comment loadbalancer en conservant les sessions

La configuration ci-dessous ne se base pas sur les IP sources mais sur un cookies pour identifier un client

Backends

backend serveur1 {
   .host = "192.168.0.1";
   .port = "80";
}

backend serveur2 {
   .host = "192.168.0.2";
   .port = "80";
}

Configuration du Loadbalancing

director member client {
   {
      .backend = serveur1;
      .weight = 1;
   }
   {
      .backend = serveur2;
      .weight = 1;
   }
}

Sticky Bit

Dans vcl_recv définissez sur quoi doit se baser Varnish pour définir “l’identité” du client set client.identity = req.http.cookie;

[Lire]

Commandes pratique pour Varnish 3.0 – varnishtop, varnishlog

Nombre de requêtes transmises au backend

varnishtop -i TxURL
varnishlog -b | grep 'TxURL'

Nombre de requête reçues des clients par Varnish

varnishtop -i RxURL
varnishlog -c | grep 'RxURL'

Liste les Cookies reçues des clients par Varnish

varnishtop -i RxHeader -I Cookie
varnishlog -c | grep 'Cookie: '

Affiche le Host le plus requetes

varnishtop -i RxHeader -I '^Host:
varnishlog -i RxHeader | grep 'Host: '

Appliquer une configuration Varnish a chaud

Il est possible de recharger/changer de configuration Varnish a chaud. Pour cela utilisez varnishadm

  • Lister les VLC chargé
  • boot : configuration initial
  • 201204121052 : configuration précédemment chargé manuellement

Lister les configurations

vcl.list

Compile la configuration

Charge run.vcl et le nome 201204121059

vcl.load 201204121059 /usr/local/etc/varnish/run.vcl

Activer une configuration

Applique la configuration se nommant 201204121059

vcl.use 201204121059

Déconnexion

quit