Weitere ähnliche Inhalte Ähnlich wie Cologne Web Performance Optimization Group Web - Varnish (20) Cologne Web Performance Optimization Group Web - Varnish1. HTTP Caching und Varnish
Cologne Web Performance
Optimization Group
SensioLabs Créateur du framework Symfony
2. Dennis Benkert
• @denderello
• Sensio Labs Deutschland
• Software Developer
• symfony 1.x & Symfony2
• Cloud Architekturen
SensioLabs 2 Créateur du framework Symfony
4. HTTP Caching
4
http://www.flickr.com/photos/michelkuik/161160973/
6. ~500 ms ~100 ms
SensioLabs 6 Créateur du framework Symfony
7. ~200 ms ~100 ms
SensioLabs 7 Créateur du framework Symfony
9. Reverse
Proxy
SensioLabs 9 Créateur du framework Symfony
11. GET / HTTP/1.1
Host: http://example.com
GET/HTTP/1.1Host:http.trainings.sensiolabs.com
SensioLabs 11 Créateur du framework Symfony
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
14. HTTP/1.1 200 OK
…
Cache--Control: s-maxage=10
HelloWorld!
GET/HTTP/1.1Host:http.trainings.sensiolabs.com
SensioLabs 14 Créateur du framework Symfony
15. HTTP/1.1 Reverse
Client App
200 OK Proxy
SensioLabs 15 Créateur du framework Symfony
16. HTTP/1.1 Reverse
Client App
200 OK Proxy
SensioLabs 16 Créateur du framework Symfony
18. HTTP/1.1 200 OK
…
Last-Modified: Thu 15 Oct 2005 07:00 …
HelloWorld!
GET/HTTP/1.1Host:http.trainings.sensiolabs.com
SensioLabs 18 Créateur du framework Symfony
19. HTTP/1.1 Reverse
Client App
200 OK Proxy
HTTP/1.1
Last-Modified
SensioLabs 19 Créateur du framework Symfony
20. HTTP/1.1 Reverse
Client App
304 Not Modified Proxy
HTTP/1.1
304 Not Modified
SensioLabs 20 Créateur du framework Symfony
21. REVERSE PROXY CACHE
SURROGATE CACHE
GATEWAY CACHE
HTTP ACCELERATOR
SensioLabs 21 Créateur du framework Symfony
23. Varnish
• HTTP accelerator (Webbeschleuniger)
• Programmiert in C
• Stark Thread-basiert
• Gutes Speichermanagement
• Eigene Konfigurationssprache
• ESI Support
SensioLabs 23 Créateur du framework Symfony
25. backend default {
.host = "192.168.0.10";
.port = "8080";
}
GET/HTTP/1.1Host:http.trainings.sensiolabs.com
SensioLabs 25 Créateur du framework Symfony
27. Backend Varnish
SensioLabs 27 Créateur du framework Symfony
28. Varnish
Backend
SensioLabs 28 Créateur du framework Symfony
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. 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
35. Request vcl_recv vcl_hash
Cached?
vcl_miss
Response vcl_deliver vcl_fetch
SensioLabs 35 Créateur du framework Symfony
37. Request vcl_recv vcl_hash
Cached?
vcl_hit
Response vcl_deliver
SensioLabs 37 Créateur du framework Symfony
39. Request vcl_recv
vcl_pipe
Response
SensioLabs 39 Créateur du framework Symfony
41. Request vcl_recv vcl_hash
Cached?
vcl_pass
vcl_hit vcl_miss
Response vcl_deliver vcl_fetch
SensioLabs 41 Créateur du framework Symfony
43. sub vcl_deliver {
setresp.http.X-Cache-Hits =
obj.hits;
}
GET/HTTP/1.1Host:http.trainings.sensiolabs.com
SensioLabs 43 Créateur du framework Symfony
44. HTTP/1.1 200 OK
…
X-Cache-Hits: 5
…
GET/HTTP/1.1Host:http.trainings.sensiolabs.com
SensioLabs 44 Créateur du framework Symfony
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
49. Webseite
Kompletter Reverse
Client Content App
Proxy
ESI
SensioLabs 49 Créateur du framework Symfony
51. Webseite
Reverse
Client App
Proxy
ESI
SensioLabs 51 Créateur du framework Symfony
52. Und das war nur ein Ausblick…
SensioLabs 52 Créateur du framework Symfony