HAProxy

Come configurare HAProxy come Load Balancer per Nginx in CentOS 8

Come configurare HAProxy come Load Balancer per Nginx in CentOS 8
High Availability Proxy, abbreviato anche in HAProxy, è un sistema di bilanciamento del carico leggero e veloce che funge anche da server proxy. Come bilanciatore del carico, svolge un ruolo cruciale nella distribuzione del traffico Web in entrata su più server Web utilizzando determinati criteri. In tal modo, garantisce un'elevata disponibilità e tolleranza ai guasti nel caso in cui ci siano troppe richieste simultanee che potrebbero sovraccaricare un singolo server web.

HaProxy è utilizzato da siti popolari come Tumblr, GitHub e StackOverflow. In questa guida, ti guideremo attraverso l'installazione di HAProxy in una configurazione di server Web alimentati utilizzando Nginx.

Configurazione del laboratorio

3 istanze di server CentOS 7 come mostrato

Nome host           Indirizzi IP
load_balancer      3.17.12.132
server_01          3.19.229.234
server_02          3.17.9.217

Passaggio 1: modifica il file /etc/hosts per il sistema di bilanciamento del carico

Per iniziare, accedi al sistema di bilanciamento del carico e modifica il file /etc/hosts per includere i nomi host e gli indirizzi IP dei due server Web come mostrato

$ vim /etc/hosts
3.19.229.234   server_01
3.17.9.217     server-02

Una volta fatto, salva le modifiche ed esci dal file di configurazione.

Ora vai su ciascuno dei server Web e aggiorna il /etc/host file con l'indirizzo IP e il nome host del sistema di bilanciamento del carico

3.17.12.132   bilanciatore di carico

Successivamente, conferma di poter eseguire il ping del bilanciatore del carico da server_01

E allo stesso modo da server_02

Inoltre, assicurati di poter eseguire il ping dei server dal bilanciatore del carico.

Perfetto ! tutti i server possono comunicare con il sistema di bilanciamento del carico!

Passaggio 2: installare e configurare il proxy HA sul sistema di bilanciamento del carico

Poiché HA Proxy è prontamente disponibile dal repository ufficiale di CentOS, lo installeremo utilizzando il gestore di pacchetti yum o dnf.

Ma come sempre, aggiorna prima il sistema

# yum aggiornamento

Quindi, installa HA Proxy come mostrato

# yum install haproxy

Al termine dell'installazione, vai alla directory haproxy.

# cd /etc/haproxy

La migliore pratica richiede di eseguire il backup di qualsiasi file di configurazione prima di apportare modifiche.  Quindi fai il backup aproxy.cfg file rinominandolo.

# mv haproxy.cfg  haproxy.cfg.bak

Quindi, procedi e apri il file di configurazione

vim haproxy.cfg

Assicurati di apportare le modifiche come mostrato

#---------------------------------------------------------------------
# Impostazioni globali
#---------------------------------------------------------------------
globale
log         127.0.0.1 local2     #Configurazione registro
 
chroot      /var/lib/haproxy
pidfile     /var/run/haproxy.pid
maxconn     4000
user        haproxy            #Haproxy in esecuzione sotto l'utente e il gruppo "haproxy"
gruppo       haproxy
demone
 
# attiva il socket unix delle statistiche
socket stats /var/lib/haproxy/stats
 
#---------------------------------------------------------------------
# impostazioni predefinite comuni che tutte le sezioni 'ascolta' e 'backend' saranno
# usa se non designato nel loro blocco
#---------------------------------------------------------------------
default
modalità                   http
log                     globale
opzione                  httplog
opzione                  dontlognull
opzione http-server-close
opzione forwardfor       eccetto 127.0.0.0/8
opzione                  rispedisci
tentativi                 3
timeout http-request    10s
coda di timeout           1 m
timeout connessione         10s
cliente di timeout          1 m
server di timeout          1 m
timeout http-keep-alive 10s
controllo del timeout           10s
maxconn                 3000
 
#---------------------------------------------------------------------
#Configurazione monitoraggio HAProxy
#---------------------------------------------------------------------
ascolta haproxy3-monitoring *:8080                #Haproxy Monitoraggio eseguito sulla porta 8080
modalità http
opzione avantiper
opzione httpclose
abilitazione statistiche
statistiche mostra leggende
le statistiche si aggiornano 5s
stats uri /stats                            #URL per il monitoraggio HAProxy
stats regno Haproxy\ Statistiche
stats auth Password123: Password123#Utente e Password per accedere alla dashboard di monitoraggio
stats admin se TRUE
default_backend app-main                   #Questo è facoltativamente per il monitoraggio del backend
 
#---------------------------------------------------------------------
# Configurazione FrontEnd
#---------------------------------------------------------------------
frontend principale
lega *:80
opzione http-server-close
opzione avantiper
default_backend app-main
 
#---------------------------------------------------------------------
# BackEnd round robin come algoritmo di bilanciamento
#---------------------------------------------------------------------
backend app-main
equilibrio roundrobin                         #Algoritmo di bilanciamento
opzione httpchk HEAD / HTTP/1.1\r\nHost:\localhost
#Verifica che l'applicazione del server sia attiva e funzionante - 200 codici di stato
server server_01 3.19.229.234:80 controllo               #Nginx1
server server_02 3.17.9.217:80 controllo                #Nginx2

Assicurati di modificare il nome host e gli indirizzi IP dei server Web come indicato nelle ultime due righe. Salva le modifiche ed esci.

Il prossimo passo sarà configurare Rsyslog per poter registrare le statistiche HAProxy.

# vim /etc/rsyslog.conf

Assicurati di decommentare le righe sottostanti per consentire le connessioni UDP

$ModLoad imudp
$UDPServerEsegui 514

Quindi, procedi e crea un nuovo file di configurazione  aproxy.conf

# vim  /etc/rsyslog.d/haproxy.conf

Incolla le seguenti righe, salva ed esci

locale2.=info   /var/log/haproxy-access.log  #Per il log di accesso
locale2.avviso  /var/log/haproxy-info.log     #Per informazioni sul servizio: backend, loadbalancer

Affinché le modifiche abbiano effetto, riavvia il demone rsyslog come mostrato:

# systemctl riavvia rsyslog

Quindi avvia e abilita HAProxy

# systemctl avvia rsyslog
# systemctl abilita rsyslog

Verificare che HAProxy sia in esecuzione

# systemctl status rsyslog

Passaggio 3: installa e configura Nginx

Ora, l'unica parte rimasta è l'installazione di Nginx. Accedi a ciascuno dei server e aggiorna prima i pacchetti di sistema:

# yum aggiornamento

Prossima installazione  EPEL (Pacchetti extra per Enterprise Linux)

# yum install epel-release

Per installare Nginx, esegui il comando:

# yum install nginx

Quindi, avvia e abilita Nginx

# systemctl avvia nginx
# systemctl abilita nginx

Andiamo quindi a modificare l'indice.html in entrambi i casi per dimostrare o simulare come il sistema di bilanciamento del carico è in grado di distribuire il traffico web su entrambi i server.

Per server_01

# echo "server_01. Hey ! Benvenuto nel primo server web" > indice.html

Per server_02

# echo "server_02. Hey ! Benvenuto nel secondo web server" > index.html

Per apportare le modifiche, riavviare Nginx

# systemctl riavvia nginx

Passaggio 4: verificare se il sistema di bilanciamento del carico funziona

Siamo finalmente al punto in cui vogliamo vedere se la configurazione funziona. Quindi accedi al sistema di bilanciamento del carico ed esegui ripetutamente il comando curl

# arricciatura 3.17.12.132

Dovresti ottenere un output alternato sul terminale che mostra il valore di index.html  da server_01 e server_02

Ora proviamo usando un browser web. Sfoglia l'indirizzo IP del tuo bilanciatore di carico

http://load-balancer-indirizzo-IP

La prima pagina visualizzerà il contenuto di uno qualsiasi dei server web


Ora aggiorna la pagina web e controlla se mostra il contenuto dell'altro server web

Perfetto ! Il bilanciamento del carico distribuisce equamente il traffico IP tra i due server Web !
Questo conclude questo tutorial su come installare e configurare HAProxy su CentOS 8. Il tuo feedback sarà molto apprezzato.

Come aumentare gli FPS in Linux?
FPS sta per Fotogrammi al secondo. Il compito dell'FPS è misurare il frame rate nelle riproduzioni video o nelle prestazioni di gioco game. In parole ...
I migliori giochi di laboratorio dell'app Oculus
Se possiedi un visore Oculus, devi essere informato sul sideloading. Il sideloading è il processo di installazione di contenuti non archiviati sul vis...
I 10 migliori giochi da giocare su Ubuntu
La piattaforma Windows è stata una delle piattaforme dominanti per i giochi a causa dell'enorme percentuale di giochi che si stanno sviluppando oggi p...