GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare HAProxy su CentOS 8

HAProxy sta per High Availability Proxy. Scritto in C, è un servizio di bilanciamento del carico TCP/HTTP gratuito e open source e una soluzione di proxy per applicazioni basate su TCP e HTTP. HAProxy viene utilizzato per migliorare le prestazioni di un ambiente server distribuendo il carico di lavoro su più server.

HAProxy consente a un'applicazione di riavviarsi automaticamente o di reindirizzare il lavoro a un altro server in caso di errore. Questo sistema di bilanciamento del carico potente, ad alte prestazioni, affidabile e sicuro è il più utilizzato ed è stato appositamente progettato per siti Web ad alto traffico.

In questo tutorial, ti mostreremo come configurare un sistema di bilanciamento del carico ad alta disponibilità con HAProxy su CentOS 8.

Prerequisiti

  • Tre nuove CentOS 8 VPS sulla piattaforma Atlantic.Net Cloud
  • Una password di root configurata su ogni VPS

Per questo tutorial, utilizzeremo la seguente configurazione:

Server HAProxy: – nome host:IP haproxy:192.168.0.10

Server Web 1:- nome host:web1 IP:192.168.0.11

Server Web 2:- nome host:web2 IP:192.168.0.12

Fase 1:crea un server cloud Atlantic.Net

Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo CentOS 8 come sistema operativo con almeno 1 GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.

Dopo aver effettuato l'accesso al server CentOS 8, esegui il comando seguente per aggiornare il sistema di base con gli ultimi pacchetti disponibili.

dnf update -y

Fase 2 – Installa e configura Nginx

Nota:completa questo passaggio su WebServer 1 e WebServer2

Innanzitutto, dovrai installare il server web Nginx sulle istanze web1 e web2.

Puoi installare Nginx eseguendo il seguente comando:

dnf install nginx -y

Una volta installato Nginx, avvia il servizio Nginx e abilitalo all'avvio all'avvio su entrambe le istanze:

systemctl start nginx
systemctl enable nginx

Quindi, modifica index.html file su ogni istanza.

Modifica index.html file su web1 istanza con il seguente comando:

echo "This is My First Nginx Web Server" > /usr/share/nginx/html/index.html

Modifica index.html file su web2 istanza con il seguente comando:

echo "This is My Second Nginx Web Server" > /usr/share/nginx/html/index.html

Salva e chiudi il file quando hai finito.

Fase 3 – Installa e configura HAProxy

Nota:completare questo passaggio su HAProxy Server

Innanzitutto, installa HAProxy sull'istanza del server haproxy con il seguente comando:

dnf install haproxy -y

Una volta completata l'installazione, eseguire il backup del file di configurazione predefinito haproxy:

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg-bak

Il file di configurazione è diviso in quattro sezioni principali.

  1. impostazioni globali: Utilizzato per impostare parametri a livello di processo.
  2. predefiniti: Utilizzato per impostare i parametri predefiniti per tutte le altre sezioni.
  3. front-end: Utilizzato per definire il modo in cui HAProxy è accessibile dall'esterno per consentire l'accesso al back-end.
  4. backend: Utilizzato per definire un insieme di server a cui si connetterà il proxy per inoltrare le connessioni in entrata.

Quindi, crea un nuovo file di configurazione haproxy usando il seguente comando:

nano /etc/haproxy/haproxy.cfg

Aggiungi le seguenti righe che corrispondono alla tua infrastruttura:

#————————————————————————

global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon

# attiva il socket unix di statistiche

stats socket /var/lib/haproxy/stats

# utilizzare criteri di crittografia a livello di sistema

ssl-default-bind-ciphers PROFILE=SYSTEM
ssl-default-server-ciphers PROFILE=SYSTEM

#————————————————————————

defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000

#————————————————————————

# frontend principale che esegue il proxy dei backend

#————————————————————————

frontend haproxy_balancer # define the name of the frontend.
bind 192.168.0.10:80 # IP address of HAProxy server
option http-server-close
option forwardfor
stats uri /haproxy?stats # Specify the HAProxy status page.
default_backend webservers

#————————————————————————

# bilanciamento round robin tra i vari backend

#————————————————————————

server web back-end # Specificare un nome per identificare un'applicazione

mode http
balance roundrobin # defines the roundrobin load balancer scheduling algorithm
option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost
server nginx-web1 192.168.0.11:80 check # IP address of the first backend server
server nginx-web2 192.168.0.12:80 check # IP address of the second backend server

Nota:assicurati di modificare l'indirizzo IP sopra con l'IP pertinente alla configurazione del tuo server

Salva e chiudi il file quando hai finito. Quindi, controlla il file di configurazione haproxy per eventuali errori con il seguente comando:

haproxy -c -f /etc/haproxy/haproxy.cfg

Dovresti ottenere il seguente output:

Configuration file is valid

Infine, avvia il servizio haproxy e abilitalo all'avvio all'avvio con il seguente comando:

systemctl start haproxy
systemctl enable haproxy

Puoi anche verificare l'haproxy con il seguente comando:

systemctl status haproxy

Dovresti ottenere il seguente output:

  • haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2020-04-24 02:14:55 EDT; 5min ago
Process: 1371 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q (code=exited, status=0/SUCCESS)
Main PID: 1373 (haproxy)
Tasks: 2 (limit: 6087)
Memory: 2.8M
CGroup: /system.slice/haproxy.service
├─1373 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
└─1374 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid

Apr 24 02:14:55 haproxy systemd[1]: Starting HAProxy Load Balancer...
Apr 24 02:14:55 haproxy systemd[1]: Started HAProxy Load Balancer.

Fase 4:configurare la registrazione HAProxy

La registrazione HAProxy ti consente di vedere le statistiche di ogni connessione ai tuoi server web back-end.

Puoi configurare rsyslog modificando il file /etc/rsyslog.conf:

nano /etc/rsyslog.conf

Decommenta la seguente riga:

module(load="imudp")
input(type="imudp" port="514")

Salva e chiudi il file quando hai finito. Successivamente, sarà necessario configurare un server rsyslog per ricevere ed elaborare i messaggi di registro HAProxy.

Per farlo, crea un nuovo file di configurazione haproxy.conf:

nano /etc/rsyslog.d/haproxy.conf

Aggiungi le seguenti righe:

local2.=info /var/log/haproxy-access.log
local2.notice /var/log/haproxy-info.log

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio rsyslog e abilitalo per l'avvio all'avvio con il seguente comando:

systemctl restart rsyslog
systemctl enable rsyslog

Fase 5:verifica del bilanciamento del carico HAProxy

A questo punto HAProxy è installato e configurato. È ora di verificare se il bilanciamento del carico funziona o meno.

Apri il tuo browser web e digita il tuo IP HAProxy http://192.168.0.10. Dovresti vedere il contenuto del tuo primo server web Nginx nella schermata seguente:

Quindi, aggiorna la pagina web. Dovresti vedere il contenuto del tuo secondo server web Nginx nella schermata seguente:

È possibile visualizzare lo stato di haproxy utilizzando l'URL http://192.168.0.10/haproxy?stats. Dovresti vedere lo stato dei tuoi server, i tassi di richiesta attuali, i tempi di risposta e altre metriche nella schermata seguente:

Conclusione

Nella guida precedente, abbiamo appreso come configurare un servizio di bilanciamento del carico ad alta disponibilità con HAProxy su CentOS 8. Ora puoi progettare e configurare facilmente il bilanciamento del carico per soddisfare la tua infrastruttura IT e i requisiti dell'applicazione; provalo su VPS Hosting da Atlantic.Net.


Linux
  1. Come configurare un server SFTP su CentOS

  2. Come configurare HAProxy in Ubuntu 16.04

  3. Come configurare il server SysLog su CentOS 7 / RHEL 7

  4. Come configurare il server NFS su CentOS 7 / RHEL 7

  5. Come configurare la replica MySQL su CentOS

Come configurare il server SysLog centralizzato su CentOS 8 / RHEL 8

Come installare HAProxy su CentOS 7

Come installare HAProxy su CentOS 8

Come configurare HAProxy come Load Balancer per Nginx su CentOS 8

Come configurare HAProxy come Load Balancer per Nginx in CentOS 7

Come eseguire la configurazione iniziale del server CentOS 7