HaProxy används av populära sajter som Tumblr, GitHub och StackOverflow. I den här guiden tar vi dig genom installationen av HAProxy i en uppsättning av webbservrar som drivs med Nginx.
Labbinställning
3 instanser av CentOS 7-servrar som visas
Värdnamn IP-adresser
load_balancer 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217
Steg 1: Redigera filen /etc/hosts för lastbalanseraren
För att börja, logga in på lastbalanseringssystemet och modifiera filen /etc/hosts så att den inkluderar värdnamnen och IP-adresserna för de två webbservrarna som visas
$ därför att / etc / värdar
3.19.229.234 server_01
3.17.9.217 server-02
När du är klar, spara ändringarna och avsluta konfigurationsfilen.
Gå nu ut till var och en av webbservrarna och uppdatera /etc/hosts fil med IP-adressen och värdnamnet för lastbalanseraren
3.17.12.132 lastbalanserareDärefter bekräftar du att du kan pinga belastningsbalanseraren från server_01
Och likaså från server_02
Se också till att du kan pinga servrarna från lastbalanseraren.
Perfekt! alla servrar kan kommunicera med lastbalanseraren!
Steg 2: Installera och konfigurera HA Proxy på lastbalanseraren
Eftersom HA Proxy är lättillgänglig från CentOS officiella arkiv, kommer vi att installera den med hjälp av pakethanteraren yum eller dnf.
Men som alltid, uppdatera systemet först
# mums uppdateringInstallera sedan HA Proxy enligt bilden
# mums installera haproxiNär installationen har lyckats navigera till haproxykatalogen.
# CD / etc / haproxiBästa praxis kräver att vi säkerhetskopierar alla konfigurationsfiler innan vi gör några ändringar. Så säkerhetskopiera haproxy.cfg filen genom att byta namn på den.
# mv haproxy.cfg haproxy.cfg.bakFortsätt sedan och öppna konfigurationsfilen
därför att haproxy.cfgSe till att du gör ändringen enligt bilden
#------------------------------------------------ --------------------# Globala inställningar
#------------------------------------------------ --------------------
global
log 127.0.0.1 lokal2 #Loggkonfiguration
chroot / var / lib / haproxi
pidfil / var / springa / haproxy.pid
maxconn 4000
användare haproxy #Haproxy körs under användare och grupp 'haproxy'
grupp haproxy
demon
# slå på statistik unix-uttaget
statistikuttag / var / lib / haproxi / statistik
#------------------------------------------------ --------------------
# vanliga standardinställningar som alla 'lyssna' och 'backend'-sektioner kommer att göra
# använd om det inte anges i deras block
#------------------------------------------------ --------------------
standardvärden
läge http
log globalt
alternativ httplogg
alternativ dontlognull
alternativet http-server-stäng
alternativ vidarebefordra för förutom 127.0.0.0 / 8
alternativ återsändning
försök igen 3
timeout http-begäran 10s
timeout-kö 1m
timeout anslutning 10s
timeout klient 1m
timeout server 1m
timeout http-hålla vid liv 10s
timeout check 10s
maxconn 3000
#------------------------------------------------ --------------------
#HAProxy Monitoring Config
#------------------------------------------------ --------------------
lyssna på haproxy3-övervakning * : 8080 #Haproxy Monitoring körs på port 8080
läge http
alternativ framåt för
alternativet httpstäng
statistik Gör det möjligt
statistik visa-legender
statistik uppdatera 5s
statistik uri / statistik #URL för HAProxy-övervakning
stats realm Haproxy\ Statistik
statistik auth Password123: Password123 #Användare och lösenord för inloggning till övervakningspanelen
statistik admin om SANN
default_backend app-main #Detta är valfritt för att övervaka backend
#------------------------------------------------ --------------------
# FrontEnd-konfiguration
#------------------------------------------------ --------------------
frontend huvud
binda * : 80
alternativet http-server-stäng
alternativ framåt för
default_backend app-main
#------------------------------------------------ --------------------
# BackEnd round robin som balansalgoritm
#------------------------------------------------ --------------------
backend app-main
balans roundrobin #Balansalgoritm
alternativ httpchk HEAD / HTTP / 1.1 \r\nVärd:\ lokalvärd
#Kontrollera att serverapplikationen är uppe och frisk - 200 statuskod
server server_01 3.19.229.234: 80 kolla upp #Nginx1
server server_02 3.17.9.217: 80 kolla upp #Nginx2
Se till att ändra webbservrarnas värdnamn och IP-adresser enligt de två sista raderna. Spara ändringarna och avsluta.
Nästa steg blir att konfigurera Rsyslog för att kunna logga HAProxy-statistik.
# därför att / etc / rsyslog.confSe till att du avkommenterar raderna nedan för att tillåta UDP-anslutningar
$ModLoad imudp$UDPServerRun 514
Fortsätt sedan och skapa en ny konfigurationsfil haproxy.conf
# därför att / etc / rsyslog.d / haproxy.confKlistra in följande rader, spara och avsluta
local2.=info / var / logga / haproxy-access.log #För åtkomstlogglokal2.meddelande / var / logga / haproxy-info.log #För serviceinfo - Backend, lastbalanserare
För att ändringarna ska träda i kraft, starta om rsyslog-demonen enligt bilden:
# systemctl starta om rsyslogStarta sedan och aktivera HAProxy
# systemctl starta rsyslog# systemctl aktivera rsyslog
Kontrollera att HAProxy körs
# systemctl status rsyslogSteg 3: Installera och konfigurera Nginx
Nu är den enda delen som återstår installationen av Nginx. Logga in på var och en av servrarna och uppdatera först systempaketen:
# mums uppdateringNästa installation EPEL (Extra Packages for Enterprise Linux)
# mums installera varm släppFör att installera Nginx, kör kommandot:
# mums installera nginxNästa, starta och aktivera Nginx
# systemctl starta nginx# systemctl aktivera nginx
Vi kommer sedan att modifiera filen index.html i båda fallen för att demonstrera eller simulera hur lastbalanseraren kan distribuera webbtrafik över båda servrarna.
För server_01
# eko 'server_01. Hej! Välkommen till den första webbservern' > index.htmlFör server_02
# eko 'server_02. Hej! Välkommen till den andra webbservern' > index.htmlFör att ändringarna ska genomföras, starta om Nginx
# systemctl starta om nginxSteg 4: Testar om lastbalanseraren fungerar
Vi är äntligen vid den punkt där vi vill se om konfigurationen fungerar. Så logga in på lastbalanseraren och utför curl-kommandot upprepade gånger
# curl 3.17.12.132Du bör få alternerande utdata på terminalen som visar värdet på index.html från server_01 och server_02
Låt oss nu testa med en webbläsare. Bläddra bland din lastbalanserares IP-adress
http: // lastbalanserare-IP-adressDen första sidan kommer att visa innehåll från någon av webbservrarna
Uppdatera nu webbsidan och kontrollera om den visar innehåll från den andra webbservern
Perfekt! Lastbalansen fördelar IP-trafiken lika mellan de två webbservrarna!
Detta avslutar den här handledningen om hur du kan installera och konfigurera HAProxy på CentOS 8. Din feedback kommer att uppskattas mycket.