7 votes

Définir TTL par défaut dans Varnish 4.0?

Je débute avec Varnish et j'utilise la version 4.0 sur Debian Wheezy.

J'aimerais définir une TTL par défaut sur tout mon cache de 4 semaines (contenu très statique).

D'après ce que j'ai lu dans la documentation, je pense que la réponse est de définir une option default_ttl quelque part dans mon fichier VCL. J'ai consulté la documentation mais je ne peux trouver qu' une seule référence à ce sujet.

J'ai trouvé cette question mais je pense que la réponse doit être obsolète, car elle ne fonctionne pas pour moi.

Quelqu'un pourrait-il expliquer comment faire cela dans Varnish 4.0 ?

MISE À JOUR : Voici mon fichier de configuration (celui par défaut fourni avec Varnish 4.0, sauf que j'ai dirigé le backend vers localhost) :

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

sub vcl_backend_fetch {
    set obj.ttl = 4w;
}

sub vcl_recv {
    # Se produit avant de vérifier si nous avons déjà cela en cache.
    #
    # En général, vous nettoyez la requête ici, en supprimant les cookies inutiles,
    # réécrivant la requête, etc.
}

sub vcl_backend_response {
    # Se produit après que nous avons lu les en-têtes de réponse du backend.
    #
    # Vous nettoyez ici les en-têtes de réponse, en supprimant les stupides en-têtes Set-Cookie
    # et d'autres erreurs que votre backend peut commettre.
}

sub vcl_deliver {
    # Se produit lorsque nous avons tous les éléments nécessaires et que nous sommes sur le point d'envoyer
    # la réponse au client.
    #
    # Vous pouvez faire de la comptabilité ou modifier l'objet final ici.
}

1 votes

Bienvenue sur ServerFault. Cette question sera probablement fermée comme un doublon, car la même question existe déjà. Je sais que les réponses actuelles ne vous ont pas aidé, donc je suggère de mettre une prime sur la question originale pour attirer plus d'attention, et éventuellement recevoir des réponses plus récentes. De plus, si vous trouvez la réponse ailleurs, vous pouvez l'ajouter comme réponse à la question originale bien sûr.

0 votes

Possible duplicate de Varnish Cache - default TTL?

1 votes

Er, ce n'est pas un doublon. J'ai explicitement fait un lien vers cette question dans ma question originale et ai dit que la réponse ne s'applique pas à la version 4.0. Comment cela peut-il être un doublon? Ou est-ce que SF est tellement désireux de fermer les questions que l'on ne peut poser une question qu'une seule fois pour une version d'un outil, et ne jamais obtenir de réponses pour une autre version de l'outil? :(

3voto

David Points 451

default_ttl est un paramètre d'exécution. Vous pouvez le définir lorsque vous démarrez varnishd.

default_ttl

Unités: secondes Valeur par défaut : 120,000 Minimum : 0,000 Drapeaux : Le TTL attribué aux objets si ni le backend ni le code VCL n'en assigne un.

Vous pouvez définir ce paramètre de 2 façons différentes. Peu importe la méthode choisie, cela produira le même résultat.

Vous pouvez utiliser le raccourci -t

-t ttl Spécifie un temps de vie minimum rigide pour les documents mis en cache. Il s'agit d'un raccourci pour spécifier le paramètre d'exécution default_ttl.

ou, vous pouvez utiliser -p param=valeur

Par exemple, vous pourriez démarrer varnishd comme ceci :

En utilisant le raccourci : varnishd -a 127.0.0.1:8081 -T 127.0.0.1 -t 2419200

En utilisant une forme plus longue : varnishd -a 127.0.0.1:8081 -T 127.0.0.1 -p default_ttl=2419200

Le nombre 2419200 représente 4 semaines en secondes.

0 votes

Notez que vous pouvez le définir dans votre configuration DAEMON_OPTS (par exemple, dans /etc/varnish/varnish.params) qui fait la même chose que ci-dessus, même format, par exemple, DAEMON_OPTS="-p default_ttl=3600"

1voto

Tony Points 165

La réponse acceptée est une façon d'atteindre l'objectif. Cependant, en réalité, vous pouvez parfaitement définir le TTL par défaut dans le fichier /etc/varnish/default.vcl comme suit:

sub vcl_backend_response {
 set beresp.ttl = 4w;
}

0 votes

Cette réponse est au mieux incomplète : en utilisant cette stratégie, tous les codes de réponse seront mis en cache, y compris les statuts 5xx, ce qui n'est guère souhaitable :(

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X