Installazione di HAProxy (High Availability Proxy) su CentOS 7

In questo tutorial andremo ad installare il software di bilanciamento carichi HAProxy (High Availability Proxy) su CentOS 7.

Per dimostrare il funzionamento di questo componente open source, utilizzeremo tre server CentOS (per l’installazione seguire questo articolo): il primo sarà impiegato come Load Balancer ed installeremo HAPRoxy, mentre gli altri due fungeranno da Web Server (installeremo Apache HTTP). I tre server dovranno avere tre indirizzi ip statici.

Utilizzeremo VirtualBox per la creazione delle macchine virtuali. Iniziamo con l’ installazione dei web server Apache, partiamo con il primo che chiameremo webserver1

yum install vim

yum install httpd

essendo in un ambiente di laboratorio spegniamo il servizio selinux

vim /etc/selinux/config

impostando il valore della variabile SELINUX=disabled, ed abilitiamo l’HTTP (porta 80) sul firewall

sudo firewall-cmd --permanent --add-port=80/tcp

sudo firewall-cmd --reload

Sicuri che il web server funzioni, impostiamo l’avvio automatico

systemctl enable httpd

systemctl start httpd

systemctl status httpd

l’ultima istruzione è utile per capire se il server web è attivo ( in uscita deve dare RUNNING).

Per poter essere raggiungibile dal servizio HAProxy, configuriamo sia il hosts che l’hostname di questo primo web server

vim /etc/hosts

che avrà questa impostazione (indirizzo ip del server e nome della macchina)

ip_server_haproxy serverhaprox

ip_webserver_1 webserver1

ip_webserver_2 webserver2

impostiamo il nome della prima macchina virtuale

hostname webserver1

Per distinguere quale server HAProxy contatterà, creiamo una pagina test html

vim /var/www/html/index.html

in cui scriveremo Server1

systemctl reload httpd

La prima macchina server è terminata, attraverso le funzioni di VirtualBox cloniamo webserver1 (spegniamo la macchina per poterla clonare su VirtualBox), imponendo in fase a VirtualBox di creare un nuovo MAC Address per impostare il secondo indirizzo ip statico del tutorial (l’opzione è “Inizializza nuovamente l’indirizzo MAC di tutte le schede di rete”).

Per la seconda macchina clonata, cambiaremo la pagina web che abbiamo creato

vim /var/www/html/index.html

scrivendo Server2, impostiamo come hostname webserver2

hostname webserver2

il file hosts (per avere un dns interno alla nostra architettura) è già impostato dato che abbiamo clonato la macchina.

Adesso che i web server sono attivi, concentriamo la nostra attenzione sulla macchina Load Balancer, installiamo HAProxy, l’idea della nostra architettura è questa:

yum install haproxy

anche per questo server disabilitiamo il selinux e permettiamo di poter accedere alla porta 80/HTTP attraverso il firewall, come fatto per i server web.

Impostiamo il file hosts come abbiamo impostato nei web server.

La configurazione del bilanciatore di carico HAProxy, avviene attraverso il file di configurazione

vim /etc/haproxy/haproxy.cfg

per la nostra architettura avremo

global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats

defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000

frontend serverha
bind *:80
mode http
stats uri /haproxy?stats
default_backend webserver
option forwardfor

backend webserver
balance roundrobin
server webserver1 ip_webserver_1:80 check
server webserver2 ip_webserver_2:80 check

abilitiamo all’avvio il servizio HAProxy ed avviamolo

systemctl enable haproxy

systemctl start haproxy

systemctl status haproxy

possiamo testare il bilanciamento di carico, proveremo ad effettuare tanti accessi al server HAproxy, dinfatti si noterà che dal browser una volta comparirà Server1 ed un’ altra Server2. Per testare invece il failover, potremo per test spegnere un web server e verificare che se accediamo al server HAProxy, quest’ultimo punterà solamente al solo web server attivo.

Per monitorare il servizio HAProxy in tempo reale, utilizziamo il seguente indirizzo

http://ip_haproxy_server/haproxy?stats

avremo la seguente schermata

 

 

 

Potrebbero interessarti anche...

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi