GNU/Linux >> Linux Esercitazione >  >> Linux

Configura il bilanciamento del carico con HAProxy, Nginx e Keepalived in Linux

Nel metodo convenzionale di hosting di un server o di un sito Web, il server è ospitato tramite un unico server HTTP. Quando i client colpiscono il server, sono ammessi sul server. Ma cosa succede quando più utenti, anche di più; migliaia di clienti, hanno colpito il sito alla volta per qualche domanda? Cosa accadrà se il server si arresta in modo anomalo? In che modo il singolo server bilancia il carico? Per rispondere a tutte queste domande, possiamo usare il termine "Bilanciamento del carico". Se stai cercando strumenti autentici per la gestione del traffico del tuo server, puoi sicuramente configurare HAProxy, Nginx e Keepalived su Linux per il bilanciamento del carico.

Fondamenti di HAProxy, Nginx e Keepalived

Nginx è noto per i suoi servizi di bilanciamento del carico e proxy. Nei server del servizio di bilanciamento del carico, i client si connettono al server tramite un servizio di bilanciamento del carico invece di connettersi direttamente al server. L'uso di Nginx, HAProxy e Keepalived funziona bene per il bilanciamento del carico in Linux. Quando un server si arresta in modo anomalo, il sistema di bilanciamento del carico connette i client a un altro server online.

HAProxy è uno strumento di bilanciamento del carico gratuito e open source per server Web HTTP e TCP. È scritto nel linguaggio di programmazione C e concesso in licenza sotto la licenza pubblica GNU. È altamente completabile e facile da configurare per il bilanciamento del carico in Linux. Il termine HAProxy sta per strumento proxy ad alta disponibilità. È possibile distribuire lo strumento HAProxy per migliorare le prestazioni, la disponibilità e il bilanciamento del carico del server.

Lo strumento Keepalived funge da intermediario tra due server che possono reindirizzare il client da un server a un altro server quando uno di essi è inattivo. Keepalived funziona in un protocollo di ridondanza del router virtuale per il bilanciamento del carico e la riduzione del problema di errore del server. L'uso di HAProxy è utile per bilanciare il carico e rendere il server sempre attivo.

Pertanto, non vi è alcuna garanzia che HAProxy rimanga sempre in vita. Ecco che arriva Keepalived per il backup di HAProxy. Può distribuire la richiesta del cliente a server remoti e gestire il bilanciamento del carico di livello 4, livello 7 (trasporto e livello di applicazione). Inoltre, HAProxy può gestire liste di controllo degli accessi, terminologie di backend e frontend.

Bilanciamento del carico con HAProxy, Nginx e Keepalived in Linux

Dato che abbiamo già parlato molto di HAproxy, Nginx e dello strumento Keepalived per Linux, entriamo nel tutorial. In questo post, vedremo come impostare il bilanciamento del carico con HAProxy, Nginx e Keepalived in Linux. Avremo bisogno di una conoscenza fondamentale a livello di server e della capacità di base di usare Linux per andare con questo post.

Passaggio 1:installa Nginx su Linux per il bilanciamento del carico

Dal momento che vedremo i metodi per rendere il nostro server più potente, il bilanciamento del carico e una maggiore gestione dei client, l'installazione del server Web HTTP Nginx sarebbe il primo passo per iniziare il processo. L'installazione del server web Nginx è facile e diretta e puoi utilizzare i seguenti comandi per installare il server web Nginx sulla tua macchina Linux.

  • Installa il server web Nginx su Ubuntu/Debian Linux
sudo apt update
sudo apt install nginx
- -

  • Esegui i seguenti comandi per installare Nginx su Fedora/Red Hat Linux
yum -y install nginx

Dopo aver installato il server Nginx, configureremo, attiveremo e avvieremo il server sulla tua macchina. Si prega di leggere questo post per vedere come iniziare con il server Nginx su Linux.

Passaggio 2:installa HAproxy Load Balancer in Linux

Dopo aver installato e configurato il server Nginx sulla tua macchina Linux, potrebbe funzionare correttamente come server sulla tua macchina o rete. Ma, poiché stiamo cercando di creare un server di bilanciamento del carico, ora installeremo e configureremo lo strumento HAproxy sul nostro sistema.

1. Installa e configura HAproxy su Ubuntu per il bilanciamento del carico

Prima di installare HAProxy sul tuo sistema, potresti voler controllare se i servizi HAProxy sono già nel tuo sistema o meno.

sudo apt show haproxy

Ora aggiungi il repository HAProxy al tuo sistema tramite i pacchetti PPA. Una volta che il PPA ha richiamato il repository, aggiorna il repository di sistema.

sudo add-apt-repository ppa:vbernat/haproxy-1.7
sudo apt update

Infine, esegui i seguenti comandi sul tuo sistema Ubuntu/Debian Linux per ottenere HAProxy sul sistema. Dopo aver installato HAProxy, controlla la versione HAProxy per assicurarti che sia stata installata correttamente sulla tua macchina.

sudo apt install -y haproxy
haproxy -v

Una volta completata l'installazione di HAProxy sulla tua macchina Linux, modificheremo ora lo script di configurazione per configurare HAProxy con il nostro server. Qui, modificheremo alcuni script di configurazione di HAProxy e, se qualcosa va storto, fai attenzione mentre modifichi quegli script ed esegui un backup di quei file per ripristinare l'impostazione predefinita.

Innanzitutto, eseguire il comando seguente sulla shell del terminale con accesso root per modificare lo script di configurazione HAProxy. Qui sto usando lo strumento Nano script editor e puoi usare qualsiasi dei tuoi strumenti preferiti.

sudo nano /etc/haproxy/haproxy.cfg

Ora copia e incolla le seguenti righe di script all'interno del file, quindi salva e chiudi il file. Le seguenti righe di script definiscono lo stato del frontend e del backend con HAProxy. Inserisci i dettagli del tuo server nel nome del server, IP e altri campi delle credenziali.

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

backend http_back
balance roundrobin
server :80 check
server :80 check

Ora, esegui il seguente comando sulla shell del terminale per modificare e configurare lo script HAproxy.

sudo nano /etc/haproxy/haproxy.cfg

Utilizzare il seguente script di configurazione per configurare le impostazioni HAproxy.

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 :80 check
server :80 check

backend blog_back
server :80 check

Al termine della configurazione, è ora possibile riavviare lo strumento HAProxy sulla macchina Linux eseguendo il seguente comando di controllo del sistema con accesso root.

sudo systemctl status haproxy
sudo systemctl restart haproxy

Ora puoi eseguire il comando menzionato di seguito con l'indirizzo del tuo server per verificare lo stato del server.

http:///haproxy?stats

2. Installa e configura HAproxy su Fedora

Installare lo strumento di bilanciamento del carico HAProxy su Fedora Linux è un po' come installarlo su sistemi Debian/Ubuntu. Innanzitutto, aggiorna il repository di sistema, quindi esegui il comando DNF per installare lo strumento HAProxy sulla tua macchina Linux.

yum -y update
yum -y install haproxy

Al termine dell'installazione, eseguire il comando seguente per eseguire un backup dello script di configurazione prima di apportare modifiche.

cd /etc/haproxy/
mv haproxy.cfg haproxy.cfg_bac

È ora possibile creare un nuovo script di configurazione HAProxy eseguendo il seguente comando touch fornito di seguito. Quindi modifica lo script con il seguente comando Nano.

touch haproxy.cfg
nano haproxy.cfg

Puoi copiare e incollare il seguente script di configurazione, quindi salvare e uscire dal file.

global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000

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

#round robin balancing backend http
#-----------------------------------
backend http_back
balance roundrobin
#balance leastconn
mode http
server webserver1 10.13.211.169:80 check # ip_address_of_1st_centos_webserver
server webserver2 10.13.211.158:80 check # ip_address_of_2nd_centos_webserver

Dopo aver aggiunto lo script nel file di configurazione, abiliteremo, avvieremo e verificheremo lo stato dello strumento HAProxy sul nostro Fedora Linux.

systemctl enable haproxy
systemctl start haproxy
systemctl status haproxy

Puoi anche verificare se HAProxy sta funzionando bene sul tuo sistema o meno estraendo lo stato HAProxy tramite il tuo browser web.

http://10.13.211.194/haproxy?stats

I seguenti comandi cURL restituiranno anche lo stato approfondito del server insieme allo stato HAProxy.

curl 10.13.211.194
curl 10.13.211.194

Passaggio 3:installa Keepalived su Linux

Dato che abbiamo già discusso di Keepalived, qui stiamo esaminando direttamente il processo di installazione di Keepalived su sistemi Linux. Qui vedremo i metodi per installare e configurare lo strumento Keepalived su Fedora e Debian Linux.

1. Installa e configura Keepalived su Ubuntu/Debian

Per installare lo strumento di bilanciamento del carico Keepalived su Ubuntu e altri sistemi Debian Linux, eseguire il comando seguente per ottenere gli strumenti essenziali per la compilazione sui propri sistemi. Quindi sfoglia la home directory ed esegui il comando wget fornito di seguito per scaricare il file Keepalived compresso sul filesystem.

sudo apt-get install build-essential libssl-dev
cd ~
wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz

Al termine del download, utilizza il seguente comando tar per estrarre il file, quindi sfoglia la directory estratta tramite il comando CD.

tar xzvf keepalived*
cd keepalived*

Ora puoi eseguire i seguenti comandi per installare lo strumento Keepalived sul tuo sistema Ubuntu.

./configure
make
sudo make install

Al termine dell'installazione, è il momento di modificare la configurazione per configurare Keepalived con il nostro server. Eseguire il comando seguente fornito di seguito per modificare lo script di configurazione.

sudo nano /etc/init/keepalived.conf

Quando lo script si apre, copia e incolla il seguente script fornito di seguito.

description "load-balancing and high-availability service"

start on runlevel [2345]
stop on runlevel [!2345]

Ora esegui mkdir comando per creare un nuovo script di configurazione per lo strumento Keepalived, quindi compilarlo con lo script di configurazione.

sudo mkdir -p /etc/keepalived
sudo nano /etc/keepalived/keepalived.conf

Usa le seguenti righe di script per riempire il file di configurazione Keepalived.

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state MASTER
priority 200

virtual_router_id 33
unicast_src_ip primary_private_IP
unicast_peer {
secondary_private_IP
}


}

Ora, modifica lo script di configurazione Keepalived da etc directory e aggiungi le seguenti righe nel tuo script.

sudo nano /etc/keepalived/keepalived.conf

Righe di script che dovremo inserire nel file di configurazione.

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
primary_private_IP
}

authentication {
auth_type PASS
auth_pass password
}

track_script {
chk_haproxy
}

notify_master /etc/keepalived/master.sh
}

Dopo aver configurato gli script per Keepalived, creeremo ora uno script di configurazione del sistema di bilanciamento del carico secondario e popoleremo lo script con le righe di script necessarie.

sudo nano /etc/keepalived/keepalived.conf

Eseguire il comando nano per modificare lo script e popolare lo script con le righe indicate di seguito. Una volta aggiornato il file, salva e chiudi lo script.

vrrp_script chk_haproxy {
script "pidof haproxy"
interval 2
}

vrrp_instance VI_1 {
interface eth1
state BACKUP
priority 100

virtual_router_id 33
unicast_src_ip secondary_private_IP
unicast_peer {
primary_private_IP
}

authentication {
auth_type PASS
auth_pass password
}

track_script {
chk_haproxy
}

notify_master /etc/keepalived/master.sh
}

2. Installa e configura Keepalived su Fedora

L'installazione dello strumento Keepalived su sistemi Fedora e Red Hat Linux è abbastanza simile all'installazione su distribuzioni Debian. Innanzitutto, dovrai aggiornare il tuo repository di sistema, quindi eseguire il seguente comando yum per installare lo strumento Keepalived.

yum update
yum install -y keepalived

Al termine dell'installazione, modificheremo lo script di configurazione Keepalived per regolare le impostazioni del server con Keepalived. Prima di apportare modifiche, faremo un backup dello script di configurazione Keepalived.

Esegui i seguenti comandi sulla tua shell uno per uno per creare un file di backup, creare un file di configurazione e modificare lo script di configurazione. Dopo aver configurato lo strumento, lo utilizzeremo per configurare il nostro server di bilanciamento del carico in Linux.

mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf_bac
touch /etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf

Quando si apre lo script di configurazione, compilare il file con le righe di script fornite di seguito. Potrebbe essere necessario apportare modifiche al file di script in base all'IP, alla porta, al nome e ad altri dettagli del server.

global_defs {
notification_email {
www.ubuntupit.com
[email protected]
}
notification_email_from [email protected]
smtp_server 10.13.211.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_instance VI_1 {
state MASTER
interface eth0 #put your interface name here. [to see interface name: $ ip a ]
virtual_router_id 51
priority 101 # 101 for master. 100 for backup. [priority of master> priority of backup]
advert_int 1
authentication {
auth_type PASS
auth_pass 1111 #password
}
virtual_ipaddress {
10.13.211.10 # use the virtual ip address.
}
}

Dopo aver configurato gli script Keepalived, esegui i seguenti comandi di controllo del sistema con accesso root sulla shell del terminale per avviare, abilitare e controllare lo stato di Keepalived sulla tua macchina Linux.

systemctl start keepalived
systemctl enable keepalived
systemctl status keepalived

Se tutto va bene, il comando seguente restituirà lo stato del server per tutte le posizioni IP che assicureranno che il tuo server Linux abbia la configurazione completa per il bilanciamento del carico con disponibilità elevata.

$ while true; do ; curl 10.13.211.10 ; sleep 1; done;

Le ultime parole

Se sei un amministratore di sistema, sai quanto sia importante rendere il tuo server sempre attivo e accessibile dai clienti di tutto il mondo. Principalmente, se il tuo server è occupato, si consiglia di abilitare un meccanismo di bilanciamento del carico.

Può rendere il server veloce e accessibile con tonnellate di hit alla volta. Nell'intero post, ho esaminato i fondamenti di HAProxy, Keepalived e Nginx. Ho illustrato il concetto e i metodi su come configurare HAProxy, Nginx e Keepalived per il bilanciamento del carico in Linux.

Per favore condividilo con i tuoi amici e la comunità Linux se trovi questo post utile e informativo. Puoi anche scrivere le tue opinioni su questo post nella sezione commenti.


Linux
  1. Come installare e configurare Nginx, WordPress e Mysql 8 in Rocky Linux/Centos 8

  2. Monitora il server Linux con Prometheus e Grafana

  3. Come installare e configurare cPanel su un server Linux

  4. Come configurare una semplice app nodejs con nginx e pm2 sul server Ubuntu

  5. Bilanciamento del carico Nginx

Bilanciamento del carico con HAProxy, Nginx e Keepalived in Linux

Come configurare HAProxy come Load Balancer per Nginx in CentOS 7

Come installare e configurare il server Web Nginx su Oracle Linux 8

Come configurare il bilanciamento del carico con NGINX su Jelastic Cloud

Come configurare il server e il client VPN Linux utilizzando OpenVPN

Come configurare Logstash su Linux con ElasticSearch, Redis, Nginx