Abbiamo installato tre macchine. Installeremo HAproxy su un server e i server Web Apache su due server. Il nostro server HAproxy funge quindi da bilanciamento del carico e distribuisce il carico sui server Web Apache.
Nota: La procedura e i comandi citati in questo post sono stati testati su Ubuntu 20.04 LTS (Focal Fossa). La stessa procedura si applica anche alle distribuzioni Debian e Mint.
Dettagli rete
Useremo tre server Ubuntu; tutti sulla stessa rete. I dettagli dei nostri server sono i seguenti:
Nome host:HAproxy, indirizzo IP:192.168.72.157 (server frontend)Nome host:Webserver1, indirizzo IP:192.168.72.158 (server backend)
Nome host:Webserver2, indirizzo IP:192.168.72.159 (server backend)
Nota: Devi disporre dei privilegi sudo su tutti i server.
Configurare un computer come un sistema di bilanciamento del carico e gli altri due come server web. Il server HAproxy sarà il nostro server front-end, che prende le richieste degli utenti e le inoltra ai due server web. I server web sono i nostri server back-end che ricevono queste richieste inoltrate.
La nostra configurazione si presenta così:
Configura i server back-end dei server Web
In questa sezione configureremo due web server (Webserver1 e Server web2 ) come i nostri server back-end.
Sul server web1(192.168.72.158)
Completa i seguenti passaggi nel tuo server web. Assicurati di sostituire i nomi host e gli indirizzi IP con gli indirizzi IP e i nomi host corrispondenti dei tuoi server web.
1. Configura file host
Su Webserver1, Modifica /etc/hosts File:
$ sudo nano /etc/hostsQuindi aggiungi la voce del nome host per . aggiungi 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 seguente comando nel terminale. Visita anche il nostro post su Come installare Apache Web Server su Linux.
$ sudo adatto Installa Apache2Quindi abilita e avvia il servizio Apache utilizzando i seguenti comandi nel terminale:
$ sudo systemctl attiva apache2$ sudo systemctl avvia apache2
Crea un file di indice per Webserver1 Utilizzare il seguente comando nel terminale:
$eco”Ciao! Questo è il server web1:192.168.72.158
“ | sudo tee /wo/www/html/index.html
Se hai un firewall in esecuzione sul tuo sistema, devi consentire il passaggio del traffico Apache:
$ sudo ufw consente 80/tcpQuindi ricarica le configurazioni del firewall:
Ricarica $ufwOra prova ad accedere al sito nel tuo browser web digitando https:// seguito dall'indirizzo IP o dal nome host del tuo server web.
https:// nome host o indirizzo IP
In alternativa, puoi utilizzare il comando curl per testare la pagina web.
$lockSul server web-2 192.168.72.159)
Completa i seguenti passaggi nel tuo secondo server web. Assicurati di sostituire i nomi host e gli indirizzi IP con gli indirizzi IP e i nomi host corrispondenti dei tuoi server web.
1. Configura file host
In Server web2 , modifica /etc/hosts File:
$ sudo nano /etc/hostsQuindi aggiungi la voce del nome host per . aggiungi HAproxy Server come segue:
HAproxy 192.168.72.1572. Installa il server web Apache
Ora installa il server web Apache usando il seguente comando nel terminale.
$ sudo adatto Installa Apache2Quindi abilita e avvia il servizio Apache utilizzando i seguenti comandi nel terminale:
$ sudo systemctl attiva apache2$ sudo systemctl avvia apache2
Crea un file di indice per Webserver2 utilizzando il seguente comando in Terminale:
$eco”Ciao! Questo è il server web2:192.168.72.159
“ | sudo tee /wo/www/html/index.html
Consenti Apache nel firewall:
$ sudo ufw consente 80/tcpe quindi ricaricare le configurazioni del firewall:
Ricarica $ufwOra prova ad accedere al sito nel tuo browser web digitando https:// seguito dall'indirizzo IP o dal nome host.
https:// nome host o indirizzo IP
In alternativa, puoi utilizzare il comando curl per testare la pagina web.
$lockOra i nostri web server Apache sono pronti.
Configura il server frontend di HAproxy Load Balancer
In questa sezione, configuriamo un sistema di bilanciamento del carico HAproxy per i nostri server web . Questo server HAproxy funge da server frontend e accetta le richieste in arrivo dai client.
Su HAproxy Server (192.168.72.157 ), segui i passaggi seguenti per configurare il servizio di bilanciamento del carico.
1. Configura file host
Modifica /etc/hosts file con il seguente comando nel terminale:
$ sudo nano /etc/hostsAggiungi le seguenti voci di nome host per entrambi Apache Server Web insieme al proprio nome host:
192.168.72.157 HAproxy192.168.72.158 web server1
192.168.72.159 web server2
Ora salva e chiudi /etc/hosts file.
Installa HAproxy Load Balancer
In questo passaggio installeremo ora HAproxy su uno dei nostri server Ubuntu (192.168.72.157). Per fare ciò, aggiorna apt con il seguente comando nel terminale:
$ sudo apt-get updateQuindi aggiorna i pacchetti con il seguente comando:
$ sudo apt-get aggiornamentoOra installa HAproxy con il seguente comando nel terminale:
$ sudo sudo adatto install felice
Una volta completata l'installazione del server HAproxy, puoi confermarla con il seguente comando nel terminale:
$ felice -vTi mostrerà la versione installata di HAproxy sul tuo sistema, confermando che HAproxy è stato installato correttamente.
Configura HAproxy come sistema di bilanciamento del carico
Nella sezione seguente, configuriamo HAproxy come sistema di bilanciamento del carico. Per fare ciò,Modifica il file /etc/haproxy/haproxy.cfg File:
$ sudo nano >etc/happy/haproxy.cfgAggiungi le seguenti righe al file haproxy.cfg, sostituendo gli indirizzi IP con i tuoi indirizzi IP.
?Il frontend Web Frontend nelle righe di configurazione precedenti, HAproxy è incaricato di ascoltare le richieste in arrivo sulla porta 80 da 192.168.72.157 e quindi inoltrarli ai server di back-end in esecuzione con . sono configurati come backend Backend web . Durante la configurazione, sostituisci gli indirizzi IP con i corrispondenti indirizzi IP dei tuoi server web.
Configura il 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à di sessione, ecc. Per configurare il monitoraggio HAproxy, aggiungi le seguenti righe al file di configurazione in /etc/haproxy/haproxy.cfg :
ascolta le statistichebind 192.168.72.157:8080
modalità http
opzione forwardfor
opzione httpclose
abilita statistiche
statistiche mostra legende
aggiornamento statistiche 5s
stats /stats
stats realm haproxy stats
stats auth kbuzdar:kbuzdar #login utente e password per il monitoraggio
stats admin se VERO
default_backend web backend
La configurazione sopra abilita HAproxy "Statistiche “ Pagina Statistiche politica e proteggila con http Autenticazione di base con nome utente e password ottenuti da Autenticazione statistica Politica.
Al termine delle configurazioni, salva e chiudi il file haproxy.cfg.
Ora controlla il file di configurazione usando il seguente comando nel terminale:
$ felice -C -F /etc/happy/haproxy.cfgIl seguente output mostra che le configurazioni sono corrette.
Ora per applicare le configurazioni, riavvia il servizio HAproxy:
$ sudo systemctl riavvia haproxy.serviceSi interrompe e quindi avvia il servizio HAproxy.
Per verificare lo stato del servizio HAproxy, il comando è:
$ sudo systemctl-status haproxy.serviceIl attivo (in corso) lo stato nell'output seguente indica che il server HAproxy è abilitato e funziona correttamente.
Ecco alcuni altri comandi per gestire il server HAproxy:
Per avviare il server HAproxy, il comando è:
$ sudo systemctl avvia haproxy.servicePer arrestare il server HAproxy, il comando è:
$ sudo systemctl ferma haproxy.serviceSe vuoi disabilitare temporaneamente il server HAproxy, il comando è:
$ sudo systemctl disabilita haproxy.servicePer riattivare il server HAproxy, il comando è:
$ sudo systemctl abilita haproxy.serviceTest HAproxy
Prima di testare la configurazione di HAproxy, assicurati di avere la connettività ai server web. Dal tuo server HAproxy, esegui il ping di entrambi i server Web utilizzando i loro indirizzi IP o nomi host.
$ nome host o indirizzo IP dell'anelloIl seguente output mostra che il server HAproxy può raggiungere entrambi i server web.
Testare il proxy HA con un browser web
Ora apri qualsiasi browser web sul tuo server HAproxy e digita https:// seguito dall'indirizzo IP del server HAproxy, che nel nostro caso è 192.168.72.157.
https://192.168.72.157Il server HAproxy invia in alternativa la richiesta ad entrambi i server web in una procedura round-robin. Puoi verificarlo ricaricando la pagina web alcune volte.
Questa è la risposta che abbiamo ricevuto quando abbiamo visto per la prima volta https://192.168.72.157:
Questa è la risposta che abbiamo ottenuto ricaricando la pagina web:
Puoi anche utilizzare il nome host invece dell'indirizzo IP del server HAproxy.
Testare il proxy HA con curl
Puoi anche usare il comando curl su Linux per testare la configurazione di HAproxy. Apri il terminale e digita curl seguito dall'indirizzo IP o dal nome host del server HAproxy.
$ riccioli 192.168.72.157o
$ ricciolo HAproxyEsegui il comando curl alcune volte e vedrai la risposta alternarsi tra i due 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, digita https:// seguito da indirizzo IP/nome host del server HAproxy e porta 8080/stats:
https://192.168.72.157:8080/Statisticheo
https://HA-Proxy:8080/StatisticheApparirà la seguente casella di autenticazione. Inserisci il nome utente e password precedentemente configurato nelle configurazioni, quindi premere OK .
Questo è il rapporto statistico per il nostro server HAproxy.
Lì hai l'installazione e la configurazione di HAproxy Load Balancer sul sistema Linux. Abbiamo appena discusso la configurazione di base e la configurazione di HAproxy come bilanciatore di carico per i server Web Apache. Abbiamo anche esaminato alcuni comandi per gestire il server HAproxy. Alla fine, abbiamo testato il bilanciamento del carico tramite il browser e il comando curl. Per ulteriori informazioni, vedere la documentazione ufficiale di HAproxy