This shows you the differences between two versions of the page.
saisp:labs:09:contents:02 [2013/11/11 00:46] 127.0.0.1 external edit |
saisp:labs:09:contents:02 [2014/05/05 13:48] (current) alexandru.carp |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 02. Lorem ipsum ==== | + | ==== 02. [20p] Configurare Varnish ==== |
- | ... | + | Ne propunem să configurăm Varnish ca front-end pentru un server web configurat de noi. Pentru aceasta vom configura instanța Varnish de pe mașina virtuală ''varnish'' ca front end pentru serverul web de pe mașina virtuală ''web'' și apoi vom face măsurători. |
+ | |||
+ | Pentru început, configurați instanța Varnish de pe mașina virtuală ''varnish'' să folosească pe post de back end serviciul web de pe mașina virtuală web. | ||
+ | |||
+ | <note tip> | ||
+ | Serviciul web de pe mașina virtuală ascultă conexiuni pe portul ''80'' la adresa IP ''192.168.0.2''. | ||
+ | |||
+ | După configurarea Varnish serviciul trebuie repornit folosind comanda<code> | ||
+ | root@varnish:~# service varnish restart | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | <solution -hidden> | ||
+ | Configurăm serverul web ca back end în fișierul ''/etc/varnish/default.vcl'':<code> | ||
+ | root@varnish:~# grep -A 3 'backend default' /etc/varnish/default.vcl | ||
+ | backend default { | ||
+ | .host = "192.168.0.2"; | ||
+ | .port = "80"; | ||
+ | } | ||
+ | </code> | ||
+ | și repornim serviciul Varnish:<code> | ||
+ | root@varnish:~# service varnish restart | ||
+ | [ ok ] Stopping HTTP accelerator: varnishd. | ||
+ | [ ok ] Starting HTTP accelerator: varnishd. | ||
+ | </code> | ||
+ | </solution> | ||
+ | |||
+ | Pentru a testa conectați-vă din browser-ul de pe stația gazdă la adresa serverului Varnish: http://192.168.0.3/. Dacă totul a mers cum trebuie va apărea o pagină cu mesajul //Say hello to my little friend!//. | ||
+ | |||
+ | Același mesaj poate fi accesat direct de la serverul web: http://192.168.0.2/, doar că nu va mai trece prin serverul Varnish. | ||
+ | |||
+ | Pentru a măsura durata transferului cu și fără Varnish, folosiți ''httperf'' pe stația gazdă (''mjolnir'') pentru a descărca un fișier dintre cele accesibile la adresa http://192.168.0.3/data/ (sau http://192.168.0.2/data/); de indicat este să folosiți fișierul ''10M.dat'' de dimesiunea cea mai mare. Folosiți conectarea la ambele servere (cu și fără suport Varnish) pentru a face diferența. | ||
+ | |||
+ | În timpul în care rulați ''httperf'' urmăriți folosind ''htop'' încărcarea pe cele două mașini virtuale. Observați încărcarea serverului Varnish atunci când acesta este folosit, sau a serverului Apache la conexiunile directe. | ||
+ | |||
+ | <note tip> | ||
+ | Folosiți opțiunea ''<nowiki>--uri</nowiki>'' la ''httperf'' ca să precizați pagina care să fie accesată. În cazul nostru ar fi vorba de http://192.168.0.2/data/10M.dat sau http://192.168.0.3/data/10M.dat. | ||
+ | </note> | ||
+ | |||
+ | <solution -hidden> | ||
+ | Rulăm comenzile de mai jos pe stația gazdă:<code bash> | ||
+ | razvan@einherjar:~/Downloads/web$ httperf --server=192.168.0.2 --wsess=2000,10,2 --rate 300 --timeout 5 --uri=http://192.168.0.2/data/10M.dat | ||
+ | [...] | ||
+ | Request rate: 27.2 req/s (36.7 ms/req) | ||
+ | [...] | ||
+ | |||
+ | razvan@einherjar:~/Downloads/web$ httperf --server=192.168.0.3 --wsess=2000,10,2 --rate 300 --timeout 5 --uri=http://192.168.0.3/data/10M.dat | ||
+ | [...] | ||
+ | Request rate: 82.0 req/s (12.2 ms/req) | ||
+ | [...] | ||
+ | </code> | ||
+ | </solution> | ||
+ | |||
+ | Observati diferența de ''Request rate'' între conexiunea directă la serverul web și conexiunea prin intermediul serverului Varnish. | ||