Sep 162014
 

Par défaut, si vous utilisez la configuration en malloc sans option, varnish crée un espace de stockage nommé s0 en ram.
Mais vous pouvez utiliser plusieurs stockages en ram ou sur disque pour garantir des performances en fonction de votre besoin.
Par exemple, pour qu’un site ne remplisse par le cache et impacte sur un autre :
– Dans le fichier /etc/default/varnish

DAEMON_OPTS="
...
-s default=malloc,64m \
-s foo=malloc,128M \
-s bar=malloc,128M \
..."

– Dans vcl_backend_response (4.0) :

if (bereq.http.host ~ "foo") {
       set beresp.storage_hint = "foo";
} else if (bereq.http.host ~ "bar") {
       set beresp.storage_hint = "bar";
} else {
       set beresp.storage_hint = "default";
}

ou vcl_fetch (3.0) :

if (req.http.host ~ "foo") {
       set beresp.storage = "foo";
} else if (req.http.host ~ "bar") {
       set beresp.storage = "bar";
} else {
       set beresp.storage = "default";
}

Par exemple, en fonction du TTL :
– Dans le fichier /etc/default/varnish

DAEMON_OPTS="
...
-s ram=malloc,1G \
-s disk=file,/space/varnish/storage,10G \
..."

– Dans vcl_backend_response (4.0) ou vcl_fetch (3.0) :

sub vcl_backend_response {
       # default storage
       set beresp.storage = "ram";
...
       if (beresp.ttl > 86400s) {
              set beresp.storage = "disk";
       }
}

  2 Responses to “Varnish multiple storage”

  1. Je me suis toujours posé la question si il est possible de changer le stockage d’un object en cours de route, exemple si il depasse un seuil de hit alors il passe en ram alors que par defaut il est sur disque.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

(required)

(required)

Spam protection by WP Captcha-Free