HAProxy

Sådan konfigureres HAProxy som belastningsafbalancering til Nginx i CentOS 8

Sådan konfigureres HAProxy som belastningsafbalancering til Nginx i CentOS 8
Proxy med høj tilgængelighed, også forkortet som HAProxy, er en let og hurtig belastningsbalancer, der også fungerer som en proxyserver. Som en load balancer spiller den en afgørende rolle i distributionen af ​​indgående webtrafik på tværs af flere webservere ved hjælp af bestemte kriterier. Dermed sikrer det høj tilgængelighed og fejltolerance, hvis der er for mange samtidige anmodninger, der kan overbelaste en enkelt webserver.

HaProxy bruges af populære websteder som Tumblr, GitHub og StackOverflow. I denne vejledning fører vi dig gennem installationen af ​​HAProxy i en opsætning af webservere, der får strøm ved hjælp af Nginx.

Lab opsætning

3 forekomster af CentOS 7-servere som vist

Værtsnavn IP-adresser
load_balancer 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217

Trin 1: Rediger / etc / hosts-filen til load balancer

For at starte skal du logge ind i load balancer-systemet og ændre / etc / hosts-filen for at inkludere værtsnavne og IP-adresser på de to webservere som vist

$ vim / etc / hosts
3.19.229.234 server_01
3.17.9.217 server-02

Når du er færdig, skal du gemme ændringerne og afslutte konfigurationsfilen.

Gå nu ud til hver af webserverne og opdater / etc / hosts fil med belastningsbalancers IP-adresse og værtsnavn

3.17.12.132 belastningsbalancer

Bekræft derefter, at du kan pinge load balancer fra server_01

Og ligeledes fra server_02

Sørg også for, at du kan pinge serverne fra load balancer.

Perfekt ! alle servere kan kommunikere med load balancer!

Trin 2: Installer og konfigurer HA Proxy på load balancer

Da HA Proxy er let tilgængelig fra CentOS officielle lager, vil vi installere det ved hjælp af yum eller dnf pakkehåndtering.

Men som altid skal du opdatere systemet først

# yum opdatering

Installer derefter HA Proxy som vist

# yum installer haproxy

Efter vellykket installation skal du navigere til haproxy-biblioteket.

# cd / etc / haproxy

Bedste praksis kræver, at vi sikkerhedskopierer enhver konfigurationsfil, før vi foretager ændringer.  Så sikkerhedskopier haproxy.cfg fil ved at omdøbe den.

# mv haproxy.cfg haproxy.cfg.bag

Fortsæt derefter og åbn konfigurationsfilen

vim haproxy.cfg

Sørg for, at du foretager ændringen som vist

#---------------------------------------------------------------------
# Globale indstillinger
#---------------------------------------------------------------------
global
log 127.0.0.1 lokal2 # logkonfiguration
 
chroot / var / lib / haproxy
pidfile / var / run / haproxy.pid
maxconn 4000
bruger haproxy #Haproxy kører under bruger og gruppe "haproxy"
gruppe haproxy
dæmon
 
# slå statistik unix-stik til
statsstik / var / lib / haproxy / statistik
 
#---------------------------------------------------------------------
# almindelige standardindstillinger, som alle sektionerne "lyt" og "backend" vil
# brug hvis ikke angivet i deres blok
#---------------------------------------------------------------------
standardindstillinger
tilstand http
log global
option httplog
valgmulighed dontlognull
indstilling http-server-luk
option forwardfor undtagen 127.0.0.0/8
mulighed for genforsendelse
prøver igen 3
timeout http-anmodning 10'ere
timeout-kø 1m
timeout forbind 10s
timeout klient 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
 
#---------------------------------------------------------------------
#HAProxy Monitoring Config
#---------------------------------------------------------------------
lyt haproxy3-overvågning *: 8080 #Haproxy-overvågning køres på port 8080
tilstand http
option frem til
valgmulighed httpclose
statistik aktiveres
statistik show-legender
statistik opdaterer 5s
stats uri / stats #URL til HAProxy-overvågning
statistik rige Haproxy \ Statistics
stats auth Password123: Password123 # Bruger og adgangskode til login til overvågningsdashboardet
statsadministrator hvis SAND
default_backend app-main # Dette er valgfrit til overvågning af backend
 
#---------------------------------------------------------------------
# FrontEnd-konfiguration
#---------------------------------------------------------------------
frontend hoved
bind *: 80
valgmulighed http-server-tæt
option frem til
default_backend app-main
 
#---------------------------------------------------------------------
# BackEnd round robin som balance algoritme
#---------------------------------------------------------------------
backend app-main
balance roundrobin #Balance-algoritme
indstilling httpchk HEAD / HTTP / 1.1 \ r \ nHost: \ localhost
# Kontroller, at serverapplikationen er op og sund - 200 statuskode
server server_01 3.19.229.234: 80 kontrol # Nginx1
server server_02 3.17.9.217: 80 tjek # Nginx2

Sørg for at ændre webserverens værtsnavn og IP-adresser som angivet i de sidste to linjer. Gem ændringerne, og afslut.

Det næste trin vil være at konfigurere Rsyslog til at kunne logge HAProxy statistik.

# vim / etc / rsyslog.konf

Sørg for at fjerne kommentar fra nedenstående linjer for at tillade UDP-forbindelser

$ ModLoad imudp
$ UDPServerKør 514

Fortsæt derefter og opret en ny konfigurationsfil  haproxy.konf

# vim / etc / rsyslog.d / haproxy.konf

Indsæt følgende linjer, gem og afslut

lokal2.= info / var / log / haproxy-adgang.log # For adgangslog
lokal2.meddelelse / var / log / haproxy-info.log #For serviceinfo - Backend, loadbalancer

For at ændringerne skal træde i kraft, genstart rsyslog-dæmonen som vist:

# systemctl genstart rsyslog

Start og aktiver derefter HAProxy

# systemctl start rsyslog
# systemctl aktiver rsyslog

Kontroller, at HAProxy kører

# systemctl status rsyslog

Trin 3: Installer og konfigurer Nginx

Nu er den eneste resterende del installationen af ​​Nginx. Log ind på hver af serverne, og opdater først systempakkerne:

# yum opdatering

Næste installation af EPEL (ekstra pakker til Enterprise Linux)

# yum installer epel-release

For at installere Nginx skal du køre kommandoen:

# yum install nginx

Start derefter og aktiver Nginx

# systemctl start nginx
# systemctl aktiver nginx

Vi vil derefter ændre indekset.html-fil i begge tilfælde for at demonstrere eller simulere, hvordan load balancer er i stand til at distribuere webtrafik på tværs af begge servere.

For server_01

# echo "server_01. Hej ! Velkommen til den første webserver "> indeks.html

For server_02

# echo "server_02. Hej ! Velkommen til den anden webserver "> indeks.html

For at ændringerne skal gennemføres, genstart Nginx

# systemctl genstart nginx

Trin 4: Test om belastningsbalanceren fungerer

Vi er endelig på det punkt, hvor vi vil se, om konfigurationen fungerer. Så log ind på load balancer og udfør curl-kommandoen gentagne gange

# krølle 3.17.12.132

Du skal få alternerende output på terminalen, der viser indeksværdien.html fra server_01 og server_02

Lad os nu teste ved hjælp af en webbrowser. Gennemse din load balancers IP-adresse

http: // load-balancer-IP-adresse

Den første side viser indhold fra en hvilken som helst af webserverne


Opdater nu websiden, og kontroller, om den viser indhold fra den anden webserver

Perfekt ! Belastningsbalancen fordeler IP-trafik ligeligt mellem de to webservere !
Dette afslutter denne vejledning om, hvordan du kan installere samt konfigurere HAProxy på CentOS 8. Din feedback vil blive meget værdsat.

Mus Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Xdotool er et gratis og open source kommandolinjeværktøj til simulering af museklik og tastetryk. Denne artikel dækker en kort vejledning om brug af x...
Mus Top 5 ergonomiske computermusprodukter til Linux
Top 5 ergonomiske computermusprodukter til Linux
Forårsager langvarig brug af computeren smerter i dit håndled eller fingre? Lider du af stive led og er konstant nødt til at ryste hænderne? Føler du ...
Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...