HaProxy används av populära webbplatser som Tumblr, GitHub och StackOverflow. I den här guiden tar vi dig igenom installationen av HAProxy i en installation av webbservrar som drivs med Nginx.
Labinställning
3 instanser av CentOS 7-servrar som visas
Värdnamn IP-adresserload_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 belastningsutjämnaren
För att börja, logga in i lastbalanseringssystemet och ändra / etc / hosts-filen för att inkludera värdnamn och IP-adresser för de två webbservrarna som visas
$ vim / etc / värdar3.19.229.234 server_01
3.17.9.217 server-02
När du är klar sparar du ändringarna och avslutar konfigurationsfilen.
Gå nu ut till var och en av webbservrarna och uppdatera / etc / värdar fil med belastningsutjämnarens IP-adress och värdnamn
3.17.12.132 lastbalanserareBekräfta därefter att du kan pinga belastningsutjämnaren från server_01
Och på samma sätt från server_02
Se också till att du kan pinga servrarna från belastningsutjämnaren.
Perfekt ! alla servrar kan kommunicera med belastningsutjämnaren!
Steg 2: Installera och konfigurera HA Proxy på belastningsutjämnaren
Eftersom HA Proxy är lättillgängligt från CentOS officiella förvar kommer vi att installera det med yum- eller dnf-pakethanteraren.
Men som alltid, uppdatera systemet först
# yum uppdateringInstallera sedan HA Proxy som visas
# yum installera haproxy
Efter framgångsrik installation, navigera till haproxy-katalogen.
# cd / etc / haproxyBästa praxis kräver att vi säkerhetskopierar alla konfigurationsfiler innan vi gör några ändringar. Så säkerhetskopiera haproxy.cfg fil genom att byta namn på den.
# mv haproxy.cfg haproxy.cfg.bakFortsätt sedan och öppna konfigurationsfilen
vim haproxy.cfgSe till att du gör ändringen som visas
#---------------------------------------------------------------------# Globala inställningar
#---------------------------------------------------------------------
global
logg 127.0.0.1 local2 #Log-konfiguration
chroot / var / lib / haproxy
pidfile / var / run / haproxy.pid
maxconn 4000
användarhaproxy #Haproxy körs under användare och grupp "haproxy"
grupp haproxy
demon
# slå på statistik unix-uttag
statsuttag / var / lib / haproxy / statistik
#---------------------------------------------------------------------
# vanliga standardvärden som alla avsnitt "lyssna" och "backend" kommer att göra
# använd om det inte anges i deras block
#---------------------------------------------------------------------
standardvärden
läge http
logga globalt
alternativ httplog
alternativ dontlognull
alternativet http-server-stäng
alternativ framåt förutom 127.0.0.0/8
alternativ vidarebefordran
försöker igen 3
timeout http-begäran 10-tal
timeout-kö 1m
timeout anslut 10s
timeout-klient 1m
timeout-server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
#---------------------------------------------------------------------
#HAProxy Monitoring Config
#---------------------------------------------------------------------
lyssna på haproxy3-övervakning *: 8080 #Haproxy-övervakning körs på port 8080
läge http
alternativ framåt för
alternativet httpclose
statistik aktivera
statistik show-legender
statistik uppdatera 5s
stats uri / stats #URL för HAProxy-övervakning
statsriket Haproxy \ Statistics
stats auth Password123: Password123 # Användare och lösenord för inloggning på övervakningsinstrumentet
statsadministratör om SANT
default_backend app-main # Detta är valfritt för övervakning av backend
#---------------------------------------------------------------------
# FrontEnd-konfiguration
#---------------------------------------------------------------------
frontend huvud
bind *: 80
alternativet http-server-stäng
alternativ framåt för
default_backend app-main
#---------------------------------------------------------------------
# BackEnd round robin som balansalgoritm
#---------------------------------------------------------------------
backend app-main
balansera rundrobin #balansalgoritm
alternativet httpchk HEAD / HTTP / 1.1 \ r \ nVärd: \ localhost
#Kontrollera att serverapplikationen är klar och hälsosam - 200 statuskod
server server_01 3.19.229.234: 80-kontroll # Nginx1
server server_02 3.17.9.217: 80-kontroll # Nginx2
Var noga med att ändra webbservern värdnamn och IP-adresser som anges i de två sista raderna. Spara ändringarna och avsluta.
Nästa steg blir att konfigurera Rsyslog för att kunna logga HAProxy-statistik.
# vim / etc / rsyslog.konfSe till att du avmarkerar raderna nedan för att tillåta UDP-anslutningar
$ ModLoad imudp$ UDPServerKör 514
Fortsätt sedan och skapa en ny konfigurationsfil haproxy.konf
# vim / etc / rsyslog.d / haproxy.konfKlistra in följande rader, spara och avsluta
lokal2.= info / var / log / haproxy-åtkomst.log #For Access Loglokal2.meddelande / var / log / haproxy-info.log #For Service Info - Backend, loadbalancer
För att ändringarna ska träda i kraft startar du om rsyslog-demonen som visas:
# systemctl startar om rsyslogStarta sedan och aktivera HAProxy
# systemctl start rsyslog# systemctl aktiverar rsyslog
Kontrollera att HAProxy körs
# systemctl status rsyslog
Steg 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:
# yum uppdateringNästa installation EPEL (Extra Packages for Enterprise Linux)
# yum installera epel-releaseFör att installera Nginx, kör kommandot:
# yum install nginxStarta sedan och aktivera Nginx
# systemctl start nginx# systemctl aktiverar nginx
Vi kommer sedan att ändra indexet.html-fil i båda fallen för att demonstrera eller simulera hur belastningsutjämnaren kan distribuera webbtrafik över båda servrarna.
För server_01
# echo "server_01. Hallå ! Välkommen till den första webbservern "> index.htmlFör server_02
# echo "server_02. Hallå ! Välkommen till den andra webbservern "> index.htmlStarta om Nginx för att ändringarna ska kunna genomföras
# systemctl startar om nginxSteg 4: Testa om belastningsutjämnaren fungerar
Vi är äntligen vid den punkt där vi vill se om konfigurationen fungerar. Så logga in i belastningsutjämnaren och kör curl-kommandot upprepade gånger
# curl 3.17.12.132Du bör få alternerande utdata på terminalen som visar indexvärdet.html från server_01 och server_02
Låt oss nu testa med en webbläsare. Bläddra i din lastbalanserings IP-adress
http: // load-balancer-IP-adressDen första sidan visar 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-trafik lika mellan de två webbservrarna !
Detta sammanfattar denna handledning om hur du kan installera och konfigurera HAProxy på CentOS 8. Din feedback kommer att uppskattas mycket.