HaProxy wordt gebruikt door populaire sites zoals Tumblr, GitHub en StackOverflow. In deze handleiding nemen we je mee door de installatie van HAProxy in een opstelling van webservers die worden aangedreven door Nginx.
Lab-configuratie
3 exemplaren van CentOS 7-servers zoals weergegeven
Hostnaam IP-adressenload_balancer 3.17.12.132
server_01 3.19.229.234
server_02 3.17.9.217
Stap 1: Bewerk het bestand /etc/hosts voor de load balancer
Log om te beginnen in op het load balancer-systeem en wijzig het bestand /etc/hosts om de hostnamen en IP-adressen van de twee webservers op te nemen, zoals weergegeven
$ vim /etc/hosts3.19.229.234 server_01
3.17.9.217 server-02
Als u klaar bent, slaat u de wijzigingen op en verlaat u het configuratiebestand.
Ga nu naar elk van de webservers en update de /etc/hosts bestand met het IP-adres en de hostnaam van de load balancer
3.17.12.132 load balancerBevestig daarna dat u de load balancer kunt pingen vanaf server_01
En ook van server_02
Zorg er ook voor dat u de servers kunt pingen vanuit de load balancer.
Perfect ! alle servers kunnen communiceren met de load balancer!
Stap 2: Installeer en configureer HA Proxy op de load balancer
Omdat HA Proxy direct beschikbaar is vanuit de officiële repository van CentOS, gaan we het installeren met behulp van de yum- of dnf-pakketbeheerder.
Maar zoals altijd, update eerst het systeem
# jammie updateInstalleer vervolgens HA Proxy zoals weergegeven
# yum installeer haproxy
Na een succesvolle installatie navigeert u naar de haproxy-directory.
# cd /etc/haproxyBest practice vereist dat we een back-up maken van elk configuratiebestand voordat we wijzigingen aanbrengen. Dus maak een back-up van de haproxy.cfg bestand door het te hernoemen.
# mv haproxy.cfg haproxy.cfg.bakGa vervolgens verder en open het configuratiebestand
vim haproxy.cfgZorg ervoor dat u de wijziging aanbrengt zoals weergegeven
#---------------------------------------------------------------------# Algemene instellingen
#---------------------------------------------------------------------
globaal
logboek 127.0.0.1 local2 #Logconfiguratie
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
gebruiker haproxy #Haproxy wordt uitgevoerd onder gebruiker en groep "haproxy"
groep haproxy
demon
# zet stats unix socket aan
stats socket /var/lib/haproxy/stats/
#---------------------------------------------------------------------
# veelvoorkomende standaardinstellingen die alle 'luister'- en 'backend'-secties zullen doen
# gebruik indien niet aangegeven in hun blok
#---------------------------------------------------------------------
standaardinstellingen
modus http
log globaal
optie httplog
optie dontlognull
optie http-server-close
optie doorsturenvoor behalve 127.0.0.0/8
optie opnieuw verzenden
nieuwe pogingen 3
time-out http-verzoek 10s
time-out wachtrij 1m
time-out verbinding 10s
time-outclient 1m
time-outserver 1m
time-out http-keep-alive 10s
time-outcontrole 10s
maxconn 3000
#---------------------------------------------------------------------
#HAProxy Monitoring Config
#---------------------------------------------------------------------
luister haproxy3-monitoring *:8080 #Haproxy Monitoring draait op poort 8080
modus http
optie doorsturenvoor
optie httpclose
statistieken inschakelen
statistieken tonen legendes
statistieken vernieuwen 5s
stats uri /stats #URL voor HAProxy-bewaking
stats rijk Haproxy\ Statistieken
stats auth Wachtwoord123: Wachtwoord123#Gebruiker en wachtwoord om in te loggen op het monitoringdashboard
stats beheerder indien WAAR
default_backend app-main #Dit is optioneel voor het monitoren van de backend
#---------------------------------------------------------------------
# FrontEnd-configuratie
#---------------------------------------------------------------------
frontend hoofd
bind *:80
optie http-server-close
optie doorsturenvoor
default_backend app-main
#---------------------------------------------------------------------
# BackEnd round robin als balansalgoritme
#---------------------------------------------------------------------
backend app-hoofd
balance roundrobin #Balance-algoritme
optie httpchk HEAD / HTTP/1.1\r\nHost:\ localhost
#Controleer of de servertoepassing actief en gezond is - 200 statuscode
server server_01 3.19.229.234:80 check #Nginx1
server server_02 3.17.9.217:80 check #Nginx2
Zorg ervoor dat u de hostnaam en IP-adressen van de webservers wijzigt zoals aangegeven in de laatste twee regels. Sla de wijzigingen op en sluit af.
De volgende stap is het configureren van Rsyslog om HAProxy-statistieken te kunnen loggen.
# vim /etc/rsyslog.confZorg ervoor dat u het commentaar op de onderstaande regels verwijdert om UDP-verbindingen toe te staan
$ModLoad imudp$UDPServerRun 514
Ga vervolgens verder en maak een nieuw configuratiebestand aan haproxy.conf
# vim /etc/rsyslog.d/haproxy.confPlak de volgende regels, sla op en sluit af
lokaal2.=info /var/log/haproxy-access.log #Voor toegangslogboeklokaal2.kennisgeving /var/log/haproxy-info.log #Voor service-info - Backend, loadbalancer
Om de wijzigingen van kracht te laten worden, start u de rsyslog-daemon opnieuw zoals weergegeven:
# systemctl herstart rsyslogStart en activeer vervolgens HAProxy
# systemctl start rsyslog# systemctl activeer rsyslog
Controleer of HAProxy actief is
# systemctl-status rsyslog
Stap 3: Installeer en configureer Nginx
Nu is het enige overgebleven deel de installatie van Nginx. Log in op elk van de servers en werk eerst de systeempakketten bij:
# jammie updateInstalleer vervolgens EPEL (Extra Packages for Enterprise Linux)
# yum installeer epel-releaseVoer de opdracht uit om Nginx te installeren:
# yum installeer nginxStart en schakel vervolgens Nginx in
# systemctl start nginx# systemctl nginx inschakelen
We gaan dan de index aanpassen.html-bestand in beide gevallen om te demonstreren of te simuleren hoe de load balancer het webverkeer over beide servers kan verdelen.
Voor server_01
# echo "server_01. Hallo ! Welkom bij de eerste webserver" > index.htmlVoor server_02
# echo "server_02. Hallo ! Welkom bij de tweede webserver" > index.htmlOm de wijzigingen door te voeren, herstart Nginx
# systemctl herstart nginxStap 4: Testen of de load balancer werkt
We zijn eindelijk op het punt waar we willen zien of de configuratie werkt. Dus log in op de load balancer en voer het curl-commando herhaaldelijk uit
# krul 3.17.12.132U zou afwisselende uitvoer op de terminal moeten krijgen met de waarde van index.html van server_01 en server_02
Laten we nu testen met een webbrowser. Blader door het IP-adres van uw load balancer
http://load-balancer-IP-adresDe eerste pagina toont inhoud van een van de webservers
Ververs nu de webpagina en controleer of deze inhoud van de andere webserver weergeeft
Perfect ! De load balance verdeelt het IP-verkeer gelijkelijk tussen de twee webservers !
Hiermee is deze tutorial afgerond over hoe u HAProxy op CentOS 8 kunt installeren en configureren. Uw feedback wordt zeer op prijs gesteld.