[FoLUG] Load balancing e SSL termination

Ivan Fabris i.f-ml01@darthxiong.net
Ven 31 Maggio 2013 23:49:08 CEST


* Il 2013-05-30 11:59:38, muratmat@libero.it scrive:
> Ciao a tutti, volevo sottoporvi la mia situazione e spero che qualcuno mi possa 
> aiutare :)
> Ho un'applicazione web così strutturata, lato server:
> 
> - N istanze dell'application server, nella fattispecie N istanze di nodejs, 
> ognuna bindata su un ip (locale) diverso. N ovviamente è una funzione del 
> numero delle CPU/Core

Visto che vuoi metterci un load balancer davanti, direi che e' funzione 
anche degli host. Quanti sono, anche spannometricamente ? Decine ? Centinaia ?

> - 1 istanza di Nginx, usato come puro servitore di file statici (bindato su un 
> ip locale ovviamente diverso dagli N di cui sopra) quali immagini, script 
> javascript etc

Questo e' un altro server ancora, suppongo.
 
> Davanti a questa struttura devo metterci un load balancer e ancor prima un SSL 
> terminator (dall'esterno l'applicazione deve viaggiare su https); in più devo 

L' ip pubblico ce lo ha lui e tutto il resto in dmz, giusto ?

> tenere conto che oltre alle normali richieste GET/POST dell'http deve viaggiare 
> anche traffico websocket.

Beh il websocket non dovrebbe essere un problema, una volta che il tunnel ssl
e' su ci fai passare quel che vuoi

> Cosa ne pensate di HAProxy? oppure adottereste una soluzione disaccoppiata 
> tipo stunnel per la SSL temrination e un altro Nginx per il load 
> balancing/reverse proxy?

HAProxy lo conosco pochissimo, ho fatto un paio di Rproxy anche https con 
squid, ma senza il LB, comunque avrei usato lui

> Da quello che ho capito la SSL termination è il task più oneroso, cioè che 
> deve essere effettuato con la maggior agilità possibile (e minori risorse 
> possibili)

Dipende da quante connessioni contemporanee ti aspetti, ma certamente se una
sola macchina fa da frontend a 100 application server, il confronto e' certo
insostenibile :)
Non sapendo ne il tipo ne il peso del carico che ti aspetti sugli appserver,
e' un po' difficile consigliare il da farsi, ma Mi sono fatto l idea che 
sarebbe bene avere ssl, rproxy e server di elementi statici su macchine 
diverse
Per il terminatore ssl puoi considerare le alternative di stud o di un 
appliance tipo lo zywall
A quest ora non mi viene in mente altro :>

-- 
  (@_   Ivan Fabris, allevatore certificato di pinguini dal 1997   _*)
  //\            www.folug.org     dif-tor heh smusma              /\\
  V_/_  pgp id 9E12 1AB8 E094 162C 1936 E29D 0700 3B4D B432 2931  _\_V



Maggiori informazioni sulla lista FoLUG