05 2014-varnish

646 vues

Publié le

Présentation de Varnish Cache, un reverse proxy HTTP.

Publié dans : Internet
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
646
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
16
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

05 2014-varnish

  1. 1. Symfony Pot – Juin 2014 Thomas Lecomte th.lecomte@gmail.com
  2. 2. Kesako ➔ Le principe du cache avec HTTP ➔ La philosophie de Varnish ➔ Un peu de conf de base ➔ Les contraintes ➔ Configuration avancée ➔ Hiérarchie de cache ➔ Bans / PURGE ➔ Questions
  3. 3. Le cache avec HTTP ➔ Le protocole HTTP/1.1 intègre nativement la notion de gateway et de cache [RFC2068] ➔ Headers Expires et Cache-Control pour contrôler le TTL et la visibilité ➔ Header Vary pour indiquer au cache que le contenu varie en fonction d'un header ➔ Bénéfices ?
  4. 4. La philosophie de Varnish ➔ Rapidité et performances – 200k req/s ➔ Peu d'objets / beaucoup d'accès – Cache non persistant – Cache en RAM ou sur disque ➔ Configuration écrite en pseudo-C – Grande liberté & flexibilité – Possibilité de faire du C inline – Vmods
  5. 5. Le langage VCL ➔ Une forme de C simplifié ➔ Fonctions, tests, strings ➔ Pas de boucles itératives ➔ Traduit en C et compilé avec GCC au démarrage ➔ Rechargeable à chaud ➔ Much more ...
  6. 6. Under the hood... vcl_recv vcl_hash vcl_fetch vcl_deliver vcl_pass PASS LOOKUP GET /foobar HTTP/1.1 Host: www.foo.net MISS HIT Origin
  7. 7. Démo #1 ➔ VCL par défaut ➔ Serveur web simulé par un script – Latence de 3 secondes avant chaque réponse ➔ Analyse du comportement de Varnish avec la commande varnishlog
  8. 8. Les contraintes ➔ Les cookies sont nos amis, ou pas ... – Espace client et contenu personnalisé – Géolocalisation ➔ Le hash et la notion de clé de cache ➔ HTTP c'est pas saykure, je veux du SSL ! ➔ J'ai mis à jour un objet, mais son TTL n'a pas expiré dans mes caches, mes clients hurlent !
  9. 9. Configuration avancée ➔ Grace mode ➔ TTL différents de ce que l'origin renvoie ➔ Pages d'erreur personnalisées ➔ Ajout de valeur de cookie dans la clé de cache d'un objet ➔ Ajout de clés de flush dans les objets stockés ➔ Query strings
  10. 10. Hierarchie de cache ➔ Il est possible de chaîner les caches ➔ Warm-up des edges moins douloureux pour l'origin ➔ Trafic à l'origin Clients Varnish L1 Varnish L2 Origin
  11. 11. Bans / PURGE ➔ Il est possible d'implémenter la méthode HTTP PURGE PURGE /content/foo.png HTTP/1.1 Host: cdn.foo.net ➔ Bans via varnishadm – Sur req ● Évalué à chaque requête reçue – Sur obj (smartbans) ● Évalué pour chaque objet servi plus vieux que le ban ● Ban lurker
  12. 12. Bans : exemples ➔ Forcera un MISS si l'objet matché en cache est plus vieux que le ban req.http.Host == "cdn.foo.net" && req.url == /content/foo.png obj.http.X-Host == "cdn.foo.net" && obj.http.X-Url == /content/foo.png ➔ Attention à l'empilement des bans : impact sur les perfs ! ➔ Bans supprimés automatiquement ➔ Ban lurker
  13. 13. Questions ?

×