This shows you the differences between two versions of the page.
saisp:labs:09:contents:08 [2014/04/28 16:00] razvan.deaconescu created |
saisp:labs:09:contents:08 [2014/05/05 15:43] (current) razvan.deaconescu |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 08. [BONUS] Configurare Nginx ca reverse proxy ==== | + | ==== 08. [BONUS - 10p] Configurare Nginx ca reverse proxy ==== |
- | Configurare Nginx ca reverse proxy pe ''varnish.qcow2''; analiză comparativă între Nginx și Varnish. | + | Nginx este un server web care poate îndeplini un rol de [[http://reviewsignal.com/blog/2013/08/29/reverse-proxy-and-cache-server-with-nginx/|reverse proxy and cache server]] la fel ca Varnish. Instalați și configurați Nginx pe stația ''varnish''. |
+ | |||
+ | <note tip> | ||
+ | Nginx ascultă în mod implicit conexiuni pe portul ''80''. Cel mai bine configurați serviciul Varnish să asculte conexiuni pe alt port (''8080'' de exemplu). | ||
+ | |||
+ | Urmăriți și indicațiile de [[http://serverfault.com/a/68160|aici]]. Trebuie să folosiți directiva ''listen'' pentru a configura portul pe care ascultă conexiuni Nginx. | ||
+ | </note> | ||
+ | |||
+ | De pe stația gazdă (''mjolnir'') folosiți utilitarul ''httperf'' pentru a măsură performanța Nginx ca reverse proxy față de Varnish. | ||
+ | |||
+ | <solution -hidden> | ||
+ | În primă fază reconfigurăm serviciul Varnish să asculte conexiuni pe portul ''8080'':<code> | ||
+ | root@varnish:~# vi /etc/default/varnish | ||
+ | root@varnish:~# cat /etc/default/varnish | ||
+ | [...] | ||
+ | DAEMON_OPTS="-a :8080 \ | ||
+ | -T localhost:6082 \ | ||
+ | -f /etc/varnish/default.vcl \ | ||
+ | -S /etc/varnish/secret \ | ||
+ | -s malloc,256m" | ||
+ | [...] | ||
+ | </code> | ||
+ | Apoi repornim serviciul Varnish:<code> | ||
+ | root@varnish:~# service varnish restart | ||
+ | </code> | ||
+ | Instalăm Nginx:<code> | ||
+ | root@varnish:~# apt-get install nginx | ||
+ | </code> | ||
+ | Și apoi configurăm Nginx pentru suport de reverse proxy.<code> | ||
+ | root@varnish:~# vi /etc/nginx/nginx.conf | ||
+ | root@varnish:~# cat /etc/nginx/nginx.conf | ||
+ | [...] | ||
+ | http { | ||
+ | |||
+ | proxy_cache_path /var/www/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m; | ||
+ | proxy_temp_path /var/www/cache/tmp; | ||
+ | |||
+ | server { | ||
+ | listen 80 default_server; | ||
+ | location / { | ||
+ | proxy_pass http://192.168.0.2; | ||
+ | proxy_cache my-cache; | ||
+ | proxy_cache_valid 200 302 60m; | ||
+ | proxy_cache_valid 404 1m; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | [...] | ||
+ | </code> | ||
+ | Creăm directorul pentru cache:<code> | ||
+ | root@varnish:~# mkdir -p /var/www/cache/tmp | ||
+ | </code> | ||
+ | Apoi repornim serviciul Nginx:<code> | ||
+ | root@varnish:~# service nginx restart | ||
+ | </code> | ||
+ | |||
+ | Apoi accesăm, de pe sistemul gazdă (''mjolnir''), URL-ul http://192.168.0.3/ sau http://192.168.0.3/data/. Serverul Nginx acționează acum ca un reverse proxy și cache. Urmărim în directorul de cache informațiile cache-uite:<code bash> | ||
+ | root@varnish:~# ls -R /var/www/cache/ | ||
+ | /var/www/cache/: | ||
+ | c tmp | ||
+ | |||
+ | /var/www/cache/c: | ||
+ | 01 | ||
+ | |||
+ | /var/www/cache/c/01: | ||
+ | 66c779a629e4b1fee8a183dbdc9ab01c | ||
+ | |||
+ | /var/www/cache/tmp: | ||
+ | </code> | ||
+ | |||
+ | Ca să comparăm Nginx cu Varnish folosim ''httperf'':<code bash> | ||
+ | student@mjolnir:~$ httperf --server=192.168.0.3 --wsess=2000,10,2 --rate 300 --timeout 5 | ||
+ | [...] | ||
+ | student@mjolnir:~$ httperf --server=192.168.0.3 --port=8080 --wsess=2000,10,2 --rate 300 --timeout 5 | ||
+ | </code> | ||
+ | </solution> |