Conférence #nwx2014 - Thibaud Juin - Varnish, accélérateur web

486 views

Published on

Varnish est un serveur de cache HTTP qui permet d'accélérer les sites et applications web tout en allégeant la charge serveur... et bien d'autres choses encore !

Published in: Internet
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
486
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Conférence #nwx2014 - Thibaud Juin - Varnish, accélérateur web

  1. 1. Varnish Faites briller vos applications et sites web ! Thibaud Juin
  2. 2. Thibaud Juin Des centaines de sites Un même code Optimisation
  3. 3. Optimisation du code Une fonction/page spécifique Une fonction commune à toutes les pages
  4. 4. Optimisation Évitons l'éternel recommencement, utilisons le cache !
  5. 5. Varnish Faites briller vos applications et sites web ! Thibaud Juin
  6. 6. Fonctionnement de Varnish Mise en place Aller plus loin !
  7. 7. Fonctionnement VisiteurVarnishApache, BD... Un serveur proxy inverse et cache HTTP C'est quoi Varnish ?
  8. 8. VisiteurVarnishApache, BD... Et pourquoi "Varnish" ? Cache Fonctionnement C'est quoi Varnish ?
  9. 9. Fonctionnement VisiteurVarnishApache, BD... Cache Load balancing
  10. 10. VCL : le langage de configuration subvcl_recv { if (req.restarts == 0){ if (req.http.x-forwarded-for){ set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip; }else { set req.http.X-Forwarded-For = client.ip; } } if (req.request != "GET" && req.request != "HEAD" && req.request != "PUT" && req.request != "POST" && req.request != "TRACE" && req.request != "OPTIONS" && req.request != "DELETE"){ /* Non-RFC2616 or CONNECTwhichis weird. */ return(pipe); } if (req.request != "GET" && req.request != "HEAD"){ /* We only deal withGETandHEADby default */ return(pass); } if (req.http.Authorization|| req.http.Cookie){ return(pass); ... Fonctionnement
  11. 11. Mettre en place Varnish C'est très simple ! Une installation, une petite configuration... - vitesse ou taille du cache ? Quelques questions... - Une même page varie t-elle en fonction de l'utilisateur ? Panier, compte utilisateur... - GET et POST utilisés à bon escient ? Utile : - Utilisation des en-têtes HTTP de cache - Mod Rpaf (apache) - Vider le cache
  12. 12. Aller plus loin ! Configuration avec le VCL Réception d'une requête calcul du hash HIT MISS Requête au backend Envoi de la réponse
  13. 13. Aller plus loin ! Vider le cache sub vcl_recv { if (req.request == "BAN") { # Same ACL check as above: if (!client.ip ~ purge) { error 405 "Not allowed."; } ban("req.http.host == " + req.http.host + "&& req.url == " + req.url); # Throw a synthetic page so the # request won't go to the backend. error 200 "Ban added"; } }
  14. 14. Aller plus loin ! Filtrer les requêtes if(req.request != "GET" && req.request != "POST" req.request != "HEAD"){ error 405 "Not allowed."; } if(req.http.host == "beta.42stores.com" ){ set req.backend = beta; } else{ set req.backend = apache; }
  15. 15. Aller plus loin ! Réécriture d'URL if (req.url ~ "^/ex/") { set req.url = regsub(req.url, "^/ex/(.*)$", "/exemple/1"); } if (req.host == "exemple.com") { set req.host = "www.exemple.com"; }
  16. 16. Pour terminer... Varnish Cache is really, really fast. It typically speeds up delivery with a factor of 300 - 1000x, depending on your architecture. Performant Flexible Robuste
  17. 17. Convaincu ? Des questions ? Présentation réalisée avec Bunkr ! $ apt-get install varnish

×