Abbiamo installato tre macchine. Installeremo HAproxy su un server e i server Web Apache su due server. Il nostro server HAproxy agirà quindi come bilanciatore del carico e distribuirà il carico tra i server Web Apache.
Nota: La procedura e i comandi menzionati in questo post sono stati testati su Ubuntu 20.04 LTS (Focale Fossa). La stessa procedura è valida anche per le distribuzioni Debian e Mint.
Dettagli di rete
Useremo tre server Ubuntu; tutto sulla stessa rete. I dettagli dei nostri server sono i seguenti:
Nome host: HAproxy, indirizzo IP: 192.168.72.157 (Server di front-end)Nome host: server web1, indirizzo IP: 192.168.72.158 (server di backend)
Nome host: server web2, indirizzo IP: 192.168.72.159 (server di backend)
Nota: Devi avere i privilegi sudo su tutti i server.
Configurare una macchina come bilanciatore del carico e le altre due come server web. Il server HAproxy sarà il nostro server front-end che riceverà le richieste degli utenti e le inoltrerà ai due server web. I server web saranno i nostri server di backend che riceveranno le richieste inoltrate.
Ecco come appare la nostra configurazione:
Configurazione di server Web-Server di backend
In questa sezione, configureremo due server web (web-server1 e web-server2) come nostri server di backend.
Sul server web1(192.168.72.158)
Esegui i passaggi seguenti nel tuo server web. Assicurati di sostituire i nomi host e gli indirizzi IP con gli indirizzi IP e i nomi host pertinenti dei tuoi server web.
1. Configura file host hosts
Sopra web-server1, modifica il /etc/host file:
$ sudo nano /etc/hostsQuindi aggiungi la voce hostname per HAproxy server come segue:
nome-host-di-HAproxy Indirizzo-IP-di-HAproxyNel nostro scenario, sarebbe:
HAproxy 192.168.72.1572. Configura il server web Apache
Ora installa il server web Apache usando il comando seguente in Terminale. Puoi anche visitare il nostro post su Come installare il server web Apache su Linux.
$ sudo apt install apache2Quindi abilita e avvia il servizio Apache usando i seguenti comandi in Terminale:
$ sudo systemctl abilita apache2$ sudo systemctl start apache2
Crea un file indice per web-server1 usando il comando seguente in Terminale:
$ eco "Ciao! Questo è il server web1: 192.168.72.158
" | sudo tee /var/www/html/index.htmlSe sul tuo sistema è in esecuzione un firewall, dovrai consentire il traffico di Apache attraverso di esso:
$ sudo ufw allow 80/tcpQuindi ricaricare le configurazioni del firewall:
$ ufw ricaricaOra prova ad accedere al sito nel tuo browser web digitando http:// seguito dall'indirizzo IP o dal nome host del tuo server web.
http:// nome-host-o-indirizzo-IP
In alternativa, puoi anche usare il comando curl per testare la pagina web.
$ curlSul server web-2 192.168.72.159)
Esegui i passaggi seguenti nel tuo secondo server web. Assicurati di sostituire i nomi host e gli indirizzi IP con gli indirizzi IP e i nomi host pertinenti dei tuoi server web.
1. Configura file host hosts
Nel web-server2, modifica il /etc/host file:
$ sudo nano /etc/hostsQuindi aggiungi la voce hostname per HAproxy server come segue:
HAproxy 192.168.72.1572. Installa il server web Apache
Ora installa il server Web Apache utilizzando il comando seguente in Terminale.
$ sudo apt install apache2Quindi abilita e avvia il servizio Apache utilizzando i seguenti comandi in Terminale:
$ sudo systemctl abilita apache2$ sudo systemctl start apache2
Crea un file indice per web-server2 usando il comando seguente in Terminale:
$ eco "Ciao! Questo è webserver2: 192.168.72.159
" | sudo tee /var/www/html/index.htmlConsenti Apache nel firewall:
$ sudo ufw allow 80/tcpe quindi ricaricare le configurazioni del firewall:
$ ufw ricaricaOra prova ad accedere al sito nel tuo browser web digitando http:// seguito dall'indirizzo IP o dal nome host.
http:// nome-host-o-indirizzo-IP
In alternativa, puoi usare il comando curl per testare la pagina web.
$ curlOra i nostri server web Apache sono pronti.
Configurazione di HAproxy load balancer-server Frontend
In questa sezione, configureremo un bilanciatore del carico HAproxy per il nostro server web. Questo server HAproxy fungerà da server frontend e accetta le richieste in entrata dai client.
Sul HAproxy server (192.168.72.157), eseguire i passaggi seguenti per configurare il bilanciamento del carico.
1. Configura file host hosts
Modifica il /etc/host file utilizzando il comando seguente in Terminale:
$ sudo nano /etc/hostsAggiungi le seguenti voci del nome host per entrambi Apache server web insieme al proprio nome host:
192.168.72.157 HAproxy192.168.72.158 server web1
192.168.72.159 server web2
Ora salva e chiudi il /etc/host file.
Installazione del bilanciamento del carico HAproxy
Ora, in questo passaggio, installeremo HAproxy su uno dei nostri server Ubuntu (192.168.72.157). Per fare ciò, aggiorna apt usando il seguente comando in Terminale:
$ sudo apt-get updateQuindi aggiorna i pacchetti usando il comando seguente:
$ sudo apt-get upgradeOra installa HAproxy usando il seguente comando in Terminale:
$ sudo sudo apt install haproxy
Una volta terminata l'installazione del server HAproxy, puoi confermarla utilizzando il comando seguente in Terminale:
$ haproxy -vTi mostrerà la versione installata di HAproxy sul tuo sistema che verifica che HAproxy sia stato installato con successo.
Configurazione di HAproxy come bilanciatore del carico
Nella sezione seguente, configureremo HAproxy come bilanciatore del carico. Fare così, modifica /etc/haproxy/haproxy.cfg file:
$ sudo nano /etc/haproxy/haproxy.cfgAggiungi le seguenti righe nell'haproxy.cfg sostituendo gli indirizzi IP con i tuoi indirizzi IP.
Il frontend frontend web nelle righe di configurazione di cui sopra dice a HAproxy di ascoltare le richieste in arrivo sulla porta 80 di 192.168.72.157 e poi inoltrarli ai server di backend configurati sotto il backend backend web. Durante la configurazione, sostituisci gli indirizzi IP con i relativi indirizzi IP dei tuoi server web.
Configurazione del monitoraggio HAproxy
Con il monitoraggio HAproxy, puoi visualizzare molte informazioni tra cui lo stato del server, i dati trasferiti, il tempo di attività, la velocità della sessione, ecc. Per configurare il monitoraggio HAproxy, aggiungere le seguenti righe nel file di configurazione situato in /etc/haproxy/haproxy.cfg:
ascolta le statistichelegare 192.168.72.157:8080
modalità http
opzione avantiper
opzione httpclose
abilitazione statistiche
statistiche mostra leggende
le statistiche si aggiornano 5s
stats uri /stats
stats regno Haproxy\ Statistiche
stats auth kbuzdar:kbuzdar         #Login Utente e Password per il monitoraggio
stats admin se TRUE
default_backend web-backend
La configurazione sopra abilita l'HAproxy †statistiche" pagina utilizzando il statistiche direttiva e la protegge con http autenticazione di base utilizzando il nome utente e la password definiti dal autenticazione statistiche direttiva.
Una volta che hai finito con le configurazioni, salva e chiudi il aproxy.cfg file.
Ora verifica il file di configurazione usando il comando seguente in Terminale:
$ haproxy -c -f /etc/haproxy/haproxy.cfgIl seguente output mostra che le configurazioni sono corrette.
Ora per applicare le configurazioni, riavvia il servizio HAproxy:
$ sudo systemctl riavvia haproxy.servizioSi fermerà e quindi avvierà il servizio HAproxy.
Per verificare lo stato del servizio HAproxy, il comando sarebbe:
$ sudo systemctl status haproxy.servizioIl attivo (in esecuzione) lo stato nel seguente output mostra che il server HAproxy è abilitato e funziona correttamente.
Ecco alcuni altri comandi per la gestione del server HAproxy:
Per avviare il server HAproxy, il comando sarebbe:
$ sudo systemctl start haproxy.servizioPer fermare il server HAproxy, il comando sarebbe:
$ sudo systemctl stop haproxy.servizioNel caso in cui desideri disabilitare temporaneamente il server HAproxy, il comando sarebbe:
$ sudo systemctl disabilita haproxy.servizioPer riabilitare il server HAproxy, il comando sarebbe:
$ sudo systemctl abilita haproxy.servizioProva HAproxy
Prima di testare la configurazione di HAproxy, assicurati di avere connettività ai server web web. Dal tuo server HAproxy, esegui il ping di entrambi i server Web tramite i loro indirizzi IP o nomi host.
$ ping nomehost-o-indirizzo-ipIl seguente output mostra che il server HAproxy può raggiungere entrambi i server web.
Testare il proxy HA utilizzando un browser web
Ora nel tuo server HAproxy, apri qualsiasi browser web e digita http:// seguito dall'indirizzo IP del server HAproxy che nel nostro caso è 192.168.72.157.
http://192.168.72.157Il server HAproxy invierà alternativamente la richiesta a entrambi i server Web in un metodo round-robin. Puoi verificarlo ricaricando la pagina web alcune volte.
Questa è la risposta che abbiamo ricevuto quando abbiamo visitato il http://192.168.72.157 per la prima volta:
Questa è la risposta che abbiamo ricevuto quando abbiamo ricaricato la pagina web:
Puoi anche usare il nome host al posto dell'indirizzo IP del server HAproxy.
Testare il proxy HA utilizzando curl
Puoi anche usare il comando curl in Linux per testare la configurazione di HAproxy. Apri il terminale e digita arricciare seguito dall'indirizzo IP o dal nome host del server HAproxy.
$ ricciolo 192.168.72.157o
$ curl HAproxyEsegui il comando curl alcune volte e vedrai la risposta alternarsi tra entrambi i server web.
Invece di eseguire i comandi più volte, puoi anche eseguire il seguente script di una riga per testare il server HAproxy:
$ mentre vero; arricciare 192.168.72.157; dormire 1; fatto
Test del monitoraggio HAproxy
Per accedere alla pagina di monitoraggio HAproxy, digitare http:// seguito dall'indirizzo IP/nome host del server HAproxy e dalla porta 8080/stats:
http://192.168.72.157:8080/statisticheo
http://HAproxy:8080/statsApparirà la seguente casella di autenticazione. accedere il nome utente e parola d'ordine hai configurato in precedenza nelle configurazioni e quindi premere ok.
Questo è il rapporto delle statistiche per il nostro server HAproxy.
Lì hai l'installazione e la configurazione di HAproxy load balancer sul sistema Linux. Abbiamo appena discusso l'impostazione e la configurazione di base di HAproxy come bilanciatore del carico per i server Web Apache. Abbiamo anche esaminato alcuni comandi per la gestione del server HAproxy. Alla fine, abbiamo testato il bilanciamento del carico tramite il browser e il comando curl. Per ulteriori informazioni, visitare la documentazione ufficiale di HAproxy