Cologne Web Performance Optimization Group Web - Varnish

1,053 views
906 views

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,053
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Cologne Web Performance Optimization Group Web - Varnish

  1. 1. HTTP Caching und Varnish Cologne Web Performance Optimization GroupSensioLabs Créateur du framework Symfony
  2. 2. Dennis Benkert • @denderello • Sensio Labs Deutschland • Software Developer • symfony 1.x & Symfony2 • Cloud ArchitekturenSensioLabs 2 Créateur du framework Symfony
  3. 3. 3http://www.flickr.com/photos/68751915@N05/6869768383/
  4. 4. HTTP Caching 4 http://www.flickr.com/photos/michelkuik/161160973/
  5. 5. SensioLabs 5 Créateur du framework Symfony
  6. 6. ~500 ms ~100 msSensioLabs 6 Créateur du framework Symfony
  7. 7. ~200 ms ~100 msSensioLabs 7 Créateur du framework Symfony
  8. 8. Doppelte Generierung vermeiden 8 http://www.flickr.com/photos/donaldmacleod/3439612846/
  9. 9. Reverse ProxySensioLabs 9 Créateur du framework Symfony
  10. 10. HTTP Headers FTW! 10 http://www.flickr.com/photos/trentstrohm/205858578/
  11. 11. GET / HTTP/1.1 Host: http://example.com GET/HTTP/1.1Host:http.trainings.sensiolabs.comSensioLabs 11 Créateur du framework Symfony
  12. 12. HTTP/1.1 200 OK Date: Wed, 15 Oct 2005 07:07:07 GMT Server: Apache Content-Length: 14 Content-Type: text/html GET/HTTP/1.1Host:http.trainings.sensiolabs.com HelloWorld!SensioLabs 12 Créateur du framework Symfony
  13. 13. HTTP ExpirationSensioLabs 13 Créateur du framework Symfony
  14. 14. HTTP/1.1 200 OK … Cache--Control: s-­­maxage=10 HelloWorld! GET/HTTP/1.1Host:http.trainings.sensiolabs.comSensioLabs 14 Créateur du framework Symfony
  15. 15. HTTP/1.1 Reverse Client App 200 OK ProxySensioLabs 15 Créateur du framework Symfony
  16. 16. HTTP/1.1 Reverse Client App 200 OK ProxySensioLabs 16 Créateur du framework Symfony
  17. 17. HTTP ValidationSensioLabs 17 Créateur du framework Symfony
  18. 18. HTTP/1.1 200 OK … Last-Modified: Thu 15 Oct 2005 07:00 … HelloWorld! GET/HTTP/1.1Host:http.trainings.sensiolabs.comSensioLabs 18 Créateur du framework Symfony
  19. 19. HTTP/1.1 Reverse Client App 200 OK Proxy HTTP/1.1 Last-ModifiedSensioLabs 19 Créateur du framework Symfony
  20. 20. HTTP/1.1 Reverse Client App 304 Not Modified Proxy HTTP/1.1 304 Not ModifiedSensioLabs 20 Créateur du framework Symfony
  21. 21. REVERSE PROXY CACHE SURROGATE CACHE GATEWAY CACHE HTTP ACCELERATORSensioLabs 21 Créateur du framework Symfony
  22. 22. Varnish Cache 22
  23. 23. Varnish • HTTP accelerator (Webbeschleuniger) • Programmiert in C • Stark Thread-basiert • Gutes Speichermanagement • Eigene Konfigurationssprache • ESI SupportSensioLabs 23 Créateur du framework Symfony
  24. 24. Varnish Configuration Language VCLSensioLabs 24 Créateur du framework Symfony
  25. 25. backend default { .host = "192.168.0.10"; .port = "8080"; } GET/HTTP/1.1Host:http.trainings.sensiolabs.comSensioLabs 25 Créateur du framework Symfony
  26. 26. Backend?SensioLabs 26 Créateur du framework Symfony
  27. 27. Backend VarnishSensioLabs 27 Créateur du framework Symfony
  28. 28. Varnish BackendSensioLabs 28 Créateur du framework Symfony
  29. 29. backend default { .host = "192.168.0.1"; .port = "8080"; } GET/HTTP/1.1Host:http.trainings.sensiolabs.com backend images { .host = "192.168.0.2"; .port = "8080"; }SensioLabs 29 Créateur du framework Symfony
  30. 30. sub vcl_recv { setreq.backend = app; if(req.url ~ ".(gif|jpg)$") { setreq.backend = images; } GET/HTTP/1.1Host:http.trainings.sensiolabs.com }SensioLabs 30 Créateur du framework Symfony
  31. 31. sub?!SensioLabs 31 Créateur du framework Symfony
  32. 32. vcl_recv?!!111SensioLabs 32 Créateur du framework Symfony
  33. 33. Varnish SubroutinesSensioLabs 33 Créateur du framework Symfony
  34. 34. MissSensioLabs 34 Créateur du framework Symfony
  35. 35. Request vcl_recv vcl_hash Cached? vcl_miss Response vcl_deliver vcl_fetchSensioLabs 35 Créateur du framework Symfony
  36. 36. HitSensioLabs 36 Créateur du framework Symfony
  37. 37. Request vcl_recv vcl_hash Cached? vcl_hit Response vcl_deliverSensioLabs 37 Créateur du framework Symfony
  38. 38. PipeSensioLabs 38 Créateur du framework Symfony
  39. 39. Request vcl_recv vcl_pipe ResponseSensioLabs 39 Créateur du framework Symfony
  40. 40. PassSensioLabs 40 Créateur du framework Symfony
  41. 41. Request vcl_recv vcl_hash Cached? vcl_pass vcl_hit vcl_miss Response vcl_deliver vcl_fetchSensioLabs 41 Créateur du framework Symfony
  42. 42. Header ManipulationSensioLabs 42 Créateur du framework Symfony
  43. 43. sub vcl_deliver { setresp.http.X-Cache-Hits = obj.hits; } GET/HTTP/1.1Host:http.trainings.sensiolabs.comSensioLabs 43 Créateur du framework Symfony
  44. 44. HTTP/1.1 200 OK … X-Cache-Hits: 5 … GET/HTTP/1.1Host:http.trainings.sensiolabs.comSensioLabs 44 Créateur du framework Symfony
  45. 45. Edge Side Includes ESISensioLabs 45 Créateur du framework Symfony
  46. 46. SensioLabs 46 Créateur du framework Symfony
  47. 47. <html> <body> Some content <esi:include src="http://" /> More content GET/HTTP/1.1Host:http.trainings.sensiolabs.com </body> </html>SensioLabs 47 Créateur du framework Symfony
  48. 48. SensioLabs 48 Créateur du framework Symfony
  49. 49. Webseite Kompletter Reverse Client Content App Proxy ESISensioLabs 49 Créateur du framework Symfony
  50. 50. SensioLabs 50 Créateur du framework Symfony
  51. 51. Webseite Reverse Client App Proxy ESISensioLabs 51 Créateur du framework Symfony
  52. 52. Und das war nur ein Ausblick…SensioLabs 52 Créateur du framework Symfony

×