Tra le tante soluzioni in tema di Load Balancing, può essere interessante e performante ricorrere a prodotti Open Source tra cui: HAPROXY
Quando un solo server web non è sufficiente per erogare il servizio e la nostra insfrastruttura ha necessità di espandersi, possiamo potenziare il nostro servizio aggiungendo un ulteriore server web; a questo punto abbiamo bisogno di bilanciare il carico tra i nostri server, in aiuto ci viene un potente software per il bilanciamento: HAProxy.
HAProxy è un Load Balancing (bilanciatore di carico), ovvero è un software che permette di smistare le connessioni in ingresso verso più server. In queso modo possiamo migliorare il servizio aumentandone la disponibilità poichè il bilanciatore invierà le richieste ai server effettivamente attivi.
In questo articolo parleremo di come poter bilanciare le richieste http, tenendo presente che HAProxy può bilanciare anche connessioni di tipo TCP.
Possiamo installare HAProxy 1.6 (attualmente stabile) su Debian 8 con i seguenti comandi:
echo deb http://httpredir.debian.org/debian jessie-backports main | \ sed 's/\(.*\)-sloppy \(.*\)/&@\1 \2/' | tr @ '\n' | \ tee /etc/apt/sources.list.d/backports.list
apt-get update apt-get install haproxy -t jessie-backports
A questo punto possiamo fare una copia di backup del file di configurazione (utile nel caso avessimo problemi)
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.originale
Passiamo quindi ad editare il file di configurazione
vi /etc/haproxy/haproxy.cfg
Passiamo quindi alla configurazione vera e propria, la configurazione di seguito proposta bilancia le connessioni in ingresso sul loadbalance verso due server web.
frontend frontend bind *:80 mode http option httpclose option forwardfor default_backend pool_backend backend pool_backend mode http balance roundrobin option forwardfor cookie CONTEXTSESSION prefix nocache option httpchk HEAD /ping.html HTTP/1.1\r\nHost:localhost server SERVERNAME IP:80 cookie SERVERNAME check server SERVERNAME IP:80 cookie SERVERNAME check listen stats :9000 mode http stats enable stats hide-version stats realm Haproxy\ Statistics stats uri /ha_stats stats auth USERNAME:PASSWORD
In questo esempio per verificare la disponibilità dei server di backend abbiamo creato un’apposita pagina chiamata ping.html, è necessario che la pagina esista e risponda correttamente altrimenti il server di backend non sarà ritenuto funzionante del proxy e quindi escluso.
Nella configurazione è necessario modificare i valore delle seguenti variabili in questo modo:
SERVERNAME = hostname del server
IP = ip del server
USERNAME = username per le statistiche
PASSWORD = password per le statistiche
Possiamo quindi avviar il servizio
service haproxy start
La configurazione che abbiamo eseguito prevede un servizio di statistiche e monitoraggio sulla porta 9000 per raggiungerlo basta digitare nel browser: http://IP:9000
Articoli correlati:
- Certificato SSL: come effettuare la migrazione da HTTP a HTTPS lato SEO
- L’Internet delle cose cresce. E se ne volete sapere di più…
- Internet delle cose: come cambierà la vostra vita
- OwnCloud: il tuo cloud privato
- Condividere il filesystem con NFS
- Come installare l’interfaccia grafica su un server Debian 8