Hvordan konfigurere HAProxy som belastningsbalanser for Nginx i CentOS 8

Hvordan Konfigurere Haproxy Som Belastningsbalanser For Nginx I Centos 8



High Availability Proxy, også forkortet HAProxy er en lett og rask lastbalanser som også fungerer som en proxy-server. Som en lastbalanser spiller den en avgjørende rolle i å distribuere innkommende nettrafikk på tvers av flere webservere ved å bruke visse kriterier. Ved å gjøre det sikrer den høy tilgjengelighet og feiltoleranse i tilfelle det er for mange samtidige forespørsler som kan overbelaste en enkelt webserver.

HaProxy brukes av populære nettsteder som Tumblr, GitHub og StackOverflow. I denne guiden tar vi deg gjennom installasjonen av HAProxy i et oppsett av webservere som drives av Nginx.

Laboratorieoppsett

3 forekomster av CentOS 7-servere som vist







Vertsnavn           IP-adresser

load_balancer      3.17.12.132
server_01          3.19.229.234
server_02          3.17.9.217

Trinn 1: Rediger /etc/hosts-filen for lastbalanseren

For å starte, logg inn på lastbalanseringssystemet og endre /etc/hosts-filen til å inkludere vertsnavnene og IP-adressene til de to webserverne som vist



$ fordi / etc / verter
3.19.229.234   server_01
3.17.9.217     server-02



Når du er ferdig, lagrer du endringene og går ut av konfigurasjonsfilen.





Gå nå ut til hver av webserverne og oppdater /etc/hosts fil med IP-adressen og vertsnavnet til lastbalanseren

3.17.12.132   lastbalanser

Deretter bekrefter du at du kan pinge lastbalanseren fra server_01



Og likeledes fra server_02

Pass også på at du kan pinge serverne fra lastbalanseren.

Perfekt ! alle servere kan kommunisere med lastbalanseren!

Trinn 2: Installer og konfigurer HA Proxy på lastbalanseren

Fordi HA Proxy er lett tilgjengelig fra CentOS offisielle depot, skal vi installere den ved å bruke yum- eller dnf-pakkebehandlingen.

Men som alltid, oppdater systemet først

# nam oppdatering

Installer deretter HA Proxy som vist

# nam installer haproksy

Når installasjonen er vellykket, naviger til haproxy-katalogen.

# cd / etc / haproksy

Beste praksis krever at vi sikkerhetskopierer enhver konfigurasjonsfil før du gjør endringer. Så ta sikkerhetskopi av haproxy.cfg fil ved å gi den nytt navn.

# mv haproxy.cfg  haproxy.cfg.bak

Fortsett deretter og åpne konfigurasjonsfilen

fordi haproxy.cfg

Sørg for at du gjør endringen som vist

#------------------------------------------------- --------------------
# Globale innstillinger
#------------------------------------------------- --------------------
global
logg         127.0.0.1 lokal2 #Loggkonfigurasjon

chroot / var / lib / haproksy
pidfil / var / løpe / haproxy.pid
maxconn 4000
bruker        haproxy #Haproxy kjører under bruker og gruppe 'haproxy'
gruppe       haproxy
demon

# slå på statistikk unix-kontakt
statistikkkontakt / var / lib / haproksy / statistikk

#------------------------------------------------- --------------------
# vanlige standarder som alle 'lytt' og 'backend'-seksjoner vil
# bruk hvis det ikke er angitt i blokken deres
#------------------------------------------------- --------------------
standardinnstillinger
modus                    http
logg                     globalt
alternativ                  httplog
alternativ                  dontlognull
alternativet http-server-lukk
alternativ viderefor       unntatt 127.0.0.0 / 8
alternativ                  videresending
prøver på nytt 3
tidsavbrudd http-forespørsel    10s
timeout-kø           1m
tidsavbrudd tilkobling         10s
tidsavbrudd klient          1m
tidsavbrudd server          1m
timeout http-holde-levende 10s
tidsavbruddssjekk           10s
maxconn 3000

#------------------------------------------------- --------------------
#HAProxy Monitoring Config
#------------------------------------------------- --------------------
lytt til haproxy3-overvåking * : 8080 #Haproxy Monitoring kjører på port 8080
modus http
alternativ viderefor
alternativet httplukk
statistikk muliggjøre
statistikk show-legender
statistikk oppdatering 5s
statistikk uri / statistikk #URL for HAProxy-overvåking
stats realm Haproxy\ Statistikk
stats auth Password123: Password123 #Bruker og passord for pålogging til overvåkingsdashbordet
statistikk admin hvis EKTE
default_backend app-main #Dette er valgfritt for å overvåke backend

#------------------------------------------------- --------------------
# FrontEnd-konfigurasjon
#------------------------------------------------- --------------------
frontend hoved
binde * : 80
alternativet http-server-lukk
alternativ viderefor
default_backend app-main

#------------------------------------------------- --------------------
# BackEnd round robin som balansealgoritme
#------------------------------------------------- --------------------
backend app-main

balansere roundrobin #Balansealgoritme

alternativ httpchk HEAD / HTTP / 1.1 \r\nVert:\ lokalvert
#Sjekk at serverapplikasjonen er oppe og frisk - 200 statuskode

server server_01 3.19.229.234: 80 kryss av #Nginx1

server server_02 3.17.9.217: 80 kryss av #Nginx2

Sørg for å endre webserverens vertsnavn og IP-adresser som angitt i de to siste linjene. Lagre endringene og avslutt.

Neste trinn vil være å konfigurere Rsyslog for å kunne logge HAProxy-statistikk.

# fordi / etc / rsyslog.conf

Pass på at du fjerner kommentarene til linjene nedenfor for å tillate UDP-tilkoblinger

$ModLoad imudp
$UDPServerRun 514

Fortsett deretter og opprett en ny konfigurasjonsfil haproxy.conf

# fordi / etc / rsyslog.d / haproxy.conf

Lim inn følgende linjer, lagre og avslutt

lokal2.=info / var / Logg / haproxy-access.log #For tilgangslogg
lokal2.varsel / var / Logg / haproxy-info.log #For Service Info - Backend, loadbalancer

For at endringene skal tre i kraft, start rsyslog-demonen på nytt som vist:

# systemctl start rsyslog på nytt

Start deretter og aktiver HAProxy

# systemctl start rsyslog
# systemctl aktiver rsyslog

Bekreft at HAProxy kjører

# systemctl status rsyslog

Trinn 3: Installer og konfigurer Nginx

Nå er den eneste delen som gjenstår installasjonen av Nginx. Logg inn på hver av serverne og oppdater først systempakkene:

# nam oppdatering

Neste installering  EPEL (ekstra pakker for Enterprise Linux)

# nam installer varm utløsning

For å installere Nginx, kjør kommandoen:

# nam installer nginx

Deretter starter og aktiverer du Nginx

# systemctl start nginx
# systemctl aktiver nginx

Vi skal deretter modifisere index.html-filen i begge tilfeller for å demonstrere eller simulere hvordan lastbalanseren er i stand til å distribuere nettrafikk på tvers av begge serverne.

For server_01

# ekko 'server_01. Hei! Velkommen til den første webserveren' > index.html

For server_02

# ekko 'server_02. Hei! Velkommen til den andre webserveren' > index.html

For at endringene skal utføres, start Nginx på nytt

# systemctl start nginx på nytt

Trinn 4: Tester om lastbalanseren fungerer

Vi er endelig på det punktet hvor vi ønsker å se om konfigurasjonen fungerer. Så logg inn på lastbalanseren og utfør curl-kommandoen gjentatte ganger

# krøll 3.17.12.132

Du bør få alternerende utdata på terminalen som viser verdien av index.html  fra server_01 og server_02

La oss nå teste med en nettleser. Bla gjennom belastningsbalanserens IP-adresse

http: // lastbalanser-IP-adresse

Den første siden vil vise innhold fra hvilken som helst av webserverne


Oppdater nå nettsiden og sjekk om den viser innhold fra den andre webserveren

Perfekt ! Lastbalansen fordeler IP - trafikk likt mellom de to webserverne !
Dette avslutter denne veiledningen om hvordan du kan installere og konfigurere HAProxy på CentOS 8. Tilbakemeldingen din vil bli satt stor pris på.