GNU/Linux >> Linux Esercitazione >  >> Rocky Linux

Come installare e configurare il sistema di bilanciamento del carico HAProxy su Rocky Linux/Alma Linux 8

Haproxy è popolare per il bilanciamento del carico a causa della sua efficienza, affidabilità e memoria ridotta e ingombro della CPU. Il bilanciamento del carico è una soluzione comune per distribuire le applicazioni Web orizzontalmente su più host fornendo agli utenti un unico punto di accesso al servizio.

È disponibile per l'installazione sulle principali distribuzioni Linux. In questa guida impareremo come installare e configurare il bilanciamento del carico HAProxy su Rocky Linux 8. Questa guida funziona anche su altre distribuzioni basate su RHEL 8 come Alma Linux e Oracle Linux.

Controlla anche:

  • Come installare e configurare il bilanciatore di carico HAProxy su Debian 11
  • Come installare e configurare il sistema di bilanciamento del carico HAProxy su Ubuntu 20.04

Algoritmi di bilanciamento del carico HAProxy

Gli algoritmi di bilanciamento vengono utilizzati per decidere a quale server sul backend viene trasferita ogni connessione. Alcune delle opzioni utili includono quanto segue:

  • Roundrobin: ogni server viene utilizzato a turno in base al proprio peso. Questo è l'algoritmo più fluido ed equo quando il tempo di elaborazione dei server rimane equamente distribuito. Questo algoritmo è dinamico e consente di regolare i pesi dei server al volo.
  • Leastconn: viene scelto il server con il minor numero di connessioni. Il round robin viene eseguito tra server con lo stesso carico. L'utilizzo di questo algoritmo è consigliato con sessioni lunghe, come LDAP, SQL, TSE e così via, ma non è molto adatto per sessioni brevi come HTTP.
  • Primo: il primo server con slot di connessione disponibili riceve la connessione. I server vengono scelti dall'identificatore numerico più basso al più alto, che per impostazione predefinita è la posizione del server nella farm. Una volta che un server raggiunge il valore maxconn, viene utilizzato il server successivo.
  • Fonte: l'indirizzo IP di origine viene sottoposto a hash e diviso per il peso totale dei server in esecuzione per designare quale server riceverà la richiesta. In questo modo lo stesso indirizzo IP del client raggiungerà sempre lo stesso server mentre i server rimarranno gli stessi.

Indice dei contenuti

  1. Assicurarsi che il server sia aggiornato
  2. Installazione di HAProxy
  3. Configurazione di HAProxy come loadbalancer
  4. Test della configurazione

1. Garantire che il server sia aggiornato

Prima di procedere, assicuriamoci che il server sia aggiornato. Usa questo comando per ottenere questo:

sudo dnf -y update

2. Installazione di Haproxy

Il pacchetto che fornisce haproxy è disponibile nei repository Rocky Linux predefiniti. Installa usando questo comando:

sudo dnf install -y haproxy

Conferma l'installazione con questo comando:

$ rpm -qi haproxy
Name        : haproxy
Version     : 1.8.27
Release     : 2.el8
Architecture: x86_64
Install Date: Tue 11 Jan 2022 09:39:45 PM UTC
Group       : System Environment/Daemons
Size        : 4446585
License     : GPLv2+
Signature   : RSA/SHA256, Wed 19 May 2021 05:13:23 AM UTC, Key ID 15af5dac6d745a60
Source RPM  : haproxy-1.8.27-2.el8.src.rpm
Build Date  : Wed 19 May 2021 02:37:50 AM UTC
Build Host  : ord1-prod-x86build004.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email protected]
Vendor      : Rocky
URL         : http://www.haproxy.org/
Summary     : HAProxy reverse proxy for high availability environments
Description :
HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high
availability environments. Indeed, it can:
 - route HTTP requests depending on statically assigned cookies
 - spread load among several servers while assuring server persistence
   through the use of HTTP cookies
 - switch to backup servers in the event a main one fails
 - accept connections to special ports dedicated to service monitoring
 - stop accepting connections without breaking existing ones
 - add, modify, and delete HTTP headers in both directions
 - block requests matching particular patterns
 - report detailed status to authenticated users from a URI
   intercepted from the application

Puoi ricontrollare il numero di versione installata con il seguente comando.

haproxy -v

Questo è l'output sulla mia macchina

$ haproxy -v
HA-Proxy version 1.8.27-493ce0b 2020/11/06
Copyright 2000-2020 Willy Tarreau <[email protected]>

L'installazione è quindi completata. Continua di seguito con le istruzioni su come configurare il sistema di bilanciamento del carico per reindirizzare le richieste ai tuoi server web.

3. Configurazione di HAProxy come bilanciatore di carico

Per configurare HAProxy come sistema di bilanciamento del carico, dobbiamo dirgli che tipo di connessioni dovrebbe essere in ascolto e dove le connessioni dovrebbero essere inoltrate. Questo viene fatto creando un file di configurazione /etc/haproxy/haproxy.cfg con le impostazioni di definizione.

Bilanciamento del carico sul livello 4

Al momento dell'installazione, HAProxy avrà già un modello per la configurazione del servizio di bilanciamento del carico. Apri il file di configurazione usando il tuo editor di testo, sto usando vim:

sudo vim /etc/haproxy/haproxy.cfg

Aggiungi questo contenuto per configurare l'interfaccia di ascolto e l'interfaccia di back-end in cui il traffico verrà bilanciato.

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server <server1 name> <private IP 1>:80 check
   server <server2 name> <private IP 2>:80 check

Sostituisci  con quello che vuoi chiamare i tuoi server nella pagina delle statistiche e  con gli IP privati ​​per i server a cui desideri indirizzare il traffico web. Questa è la configurazione che sto usando nel mio server

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server web_server_1 10.70.5.41:80 check
   server web_server_2 10.70.5.187:80 check

Quanto sopra definisce un sistema di bilanciamento del carico di livello 4 con un nome front-end http_front che ascolta il numero di porta 80, che poi indirizza il traffico al back-end predefinito denominato http_back. L'URI delle statistiche aggiuntive /haproxy?stats abilita la pagina delle statistiche a quell'indirizzo specificato.

Bilanciamento del carico sul livello 7

Possiamo anche configurare il sistema di bilanciamento del carico per funzionare sul livello 7. Ciò è utile quando parti della tua applicazione web si trovano su host diversi. Ciò può essere ottenuto condizionando il trasferimento della connessione, ad esempio tramite l'URL.

Apri il file di configurazione usando il tuo editor di testo, sto usando vim:

sudo vim /etc/haproxy/haproxy.cfg

Quindi aggiungi questi config

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   acl url_blog path_beg /blog
   use_backend blog_back if url_blog
   default_backend http_back

backend http_back
   balance roundrobin
   server <server name> <private IP>:80 check
   server <server name> <private IP>:80 check

backend blog_back
   server <server name> <private IP>:80 check
   server <server name> <private IP>:80 check

Il front-end dichiara una regola ACL denominata url_blog che si applica a tutte le connessioni con percorsi che iniziano con /blog. Use_backend definisce che le connessioni che soddisfano la condizione url_blog devono essere servite dal back-end denominato blog_back, mentre tutte le altre richieste vengono gestite dal back-end predefinito.

Sul lato back-end, la configurazione imposta due gruppi di server, http_back come prima e il nuovo chiamato blog_back che server si collega in modo specifico a example.com/blog.

Dopo aver effettuato le configurazioni, salvare il file e riavviare HAProxy con il comando successivo.

sudo systemctl restart haproxy

Se ricevi errori o avvisi all'avvio, controlla la configurazione per eventuali errori di digitazione e poi prova a riavviare di nuovo.

Configurazione SSL

Se hai un file di chiave privata e un file di certificato che desideri utilizzare con HAProxy, combinali con questo comando.

cat citizix.fullchain.pem citizix.key > citizix.pem

Quindi configura HAProxy per utilizzare il certificato SSL sul frontend.

frontend http_front
        bind *:80
        bind *:443 ssl crt /etc/letsencrypt/live/apps.citizix.com/citizix.pem 

4. Testare la configurazione

Con HAProxy configurato e in esecuzione, apri l'IP pubblico del tuo server di bilanciamento del carico in un browser web e verifica di essere connesso correttamente al tuo back-end. Il parametro stats uri nella configurazione abilita la pagina delle statistiche all'indirizzo definito.

http://<Haproxy public IP>/haproxy?stats

Quando carichi la pagina delle statistiche e tutti i tuoi server sono elencati in verde, la configurazione è riuscita!

La pagina delle statistiche contiene alcune informazioni utili per tenere traccia dei tuoi host web, inclusi i tempi di attività e di inattività e il conteggio delle sessioni. Se un server è elencato in rosso, verifica che il server sia acceso e che sia possibile eseguire il ping dal sistema di bilanciamento del carico.

Nel caso in cui il tuo sistema di bilanciamento del carico non risponda, controlla che le connessioni HTTP non vengano bloccate da un firewall. Inoltre, conferma che HAProxy è in esecuzione con il comando seguente.

sudo systemctl status haproxy

5. Password di protezione della pagina delle statistiche

Avere la pagina delle statistiche semplicemente elencata nel front-end, tuttavia, è pubblicamente aperta a chiunque, il che potrebbe non essere una buona idea. Puoi invece impostarlo sul proprio numero di porta aggiungendo l'esempio seguente alla fine del tuo haproxy.cfg file. Sostituisci il nome utente e la password con qualcosa di sicuro.

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy\ Statistics
   stats auth username:password

Dopo aver aggiunto il nuovo gruppo di ascolto, rimuovi il vecchio riferimento all'uri delle statistiche dal gruppo frontend. Al termine, salva il file e riavvia nuovamente HAProxy.

sudo systemctl restart haproxy

Quindi apri nuovamente il sistema di bilanciamento del carico con il nuovo numero di porta e accedi con il nome utente e la password impostati nel file di configurazione.

http://<load balancer public IP>:8181

Verifica che i tuoi server stiano ancora segnalando tutto verde e quindi apri solo l'IP del sistema di bilanciamento del carico senza alcun numero di porta sul tuo browser web.

http://<load balancer public IP>/

Se i tuoi server di backend hanno pagine di destinazione almeno leggermente diverse noterai che ogni volta che ricarichi la pagina ricevi la risposta da un host diverso.

Conclusioni

Questo è tutto! In questa guida abbiamo appreso come installare e configurare HAProxy per bilanciare il traffico. Ciò aumenterà le prestazioni e la disponibilità delle tue applicazioni web.


Rocky Linux
  1. Come installare e configurare Fail2ban su Alma Linux 8

  2. Come installare e configurare la finestra mobile in Rocky Linux/Centos 8

  3. Come installare e configurare la condivisione di file Samba su Rocky Linux/Alma Linux 8

  4. Come installare FFmpeg su Rocky Linux/Alma Linux 8

  5. Come installare e configurare Elasticsearch su Rocky Linux 8

Come installare e configurare HAProxy su Rocky Linux 8

Come installare e configurare Memcached su Rocky Linux/Alma Linux 8

Come installare e configurare il bilanciamento del carico HAProxy su Ubuntu 20.04

Come installare e configurare Squid Proxy su Rocky Linux/Alma Linux 8

Come installare e configurare Mono su Rocky Linux 8 e CentOS 8

Come installare e configurare OpenCV su Rocky Linux 8.4