HaProxy wordt gebruikt door populaire sites zoals Tumblr, GitHub en StackOverflow. In deze gids nemen we u mee door de installatie van HAProxy in een set-up van webservers die worden aangedreven door Nginx.
Lab-opstelling
3 exemplaren van CentOS 7-servers zoals weergegeven
Hostnaam IP-adressen
load_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
Om te beginnen logt u in op het load balancer-systeem en wijzigt u het /etc/hosts-bestand om de hostnamen en IP-adressen van de twee webservers op te nemen, zoals weergegeven
$ omdat / enzovoort / gastheren
3.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 loadbalancerBevestig 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 vanaf 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 in de officiële CentOS-repository, gaan we het installeren met behulp van de yum- of dnf-pakketbeheerder.
Maar zoals altijd, update eerst het systeem
# lekker updatenInstalleer vervolgens HA Proxy zoals weergegeven
# jammie installeren haproxyNa een succesvolle installatie navigeert u naar de haproxy-directory.
# CD / enzovoort / haproxyBest practice vereist dat we een back-up maken van elk configuratiebestand voordat we wijzigingen aanbrengen. Maak dus een back-up van de haproxy.cfg bestand door het te hernoemen.
# mv haproxy.cfg haproxy.cfg.bakGa vervolgens verder en open het configuratiebestand
omdat haproxy.cfgZorg ervoor dat u de wijziging uitvoert zoals weergegeven
#------------------------------------------------ --------------------# Algemene instellingen
#------------------------------------------------ --------------------
globaal
logboek 127.0.0.1 lokaal2 #Log configuratie
chroot / was / lib / haproxy
pid-bestand / was / rennen / haproxy.pid
maxconn 4000
gebruiker haproxy #Haproxy draait onder gebruiker en groep 'haproxy'
groep haproxy
demon
# schakel stats unix-socket in
stats aansluiting / was / lib / haproxy / statistieken
#------------------------------------------------ --------------------
# algemene standaardwaarden die alle secties 'luisteren' en 'backend' zullen gebruiken
# gebruiken indien niet aangegeven in hun blok
#------------------------------------------------ --------------------
standaardinstellingen
modus http
log globaal
optie httplog
optie dontlognull
optie http-server-sluiten
optie doorsturen voor behalve 127.0.0.0 / 8
optie opnieuw verzenden
probeert opnieuw 3
time-out http-request 10s
time-out wachtrij 1m
time-out verbinding 10s
time-out client 1m
time-out server 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 doorsturen voor
optie httpclose
statistieken inschakelen
statistieken show-legendes
statistieken vernieuwen 5s
statistieken url / statistieken #URL voor HAProxy-bewaking
stats realm Haproxy\ Statistieken
stats auth Password123: Password123 #Gebruiker en wachtwoord om in te loggen op het monitoringdashboard
statistieken beheerder indien WAAR
default_backend app-main #Dit is optioneel voor het monitoren van de backend
#------------------------------------------------ --------------------
# FrontEnd-configuratie
#------------------------------------------------ --------------------
frontend hoofd
binden * : 80
optie http-server-sluiten
optie doorsturen voor
default_backend app-main
#------------------------------------------------ --------------------
# BackEnd round robin als balansalgoritme
#------------------------------------------------ --------------------
backend app-main
evenwicht 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 controleren #Nginx1
server server_02 3.17.9.217: 80 controleren #Nginx2
Zorg ervoor dat u de hostnaam en IP-adressen van de webserver 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.
# omdat / enzovoort / rsyslog.confZorg ervoor dat u de onderstaande regels ongedaan maakt om UDP-verbindingen toe te staan
$ModLoad imudp$UDPServerRun 514
Ga vervolgens verder en maak een nieuw configuratiebestand aan haproxy.conf
# omdat / enzovoort / rsyslog.d / haproxy.confPlak de volgende regels, sla op en sluit af
lokaal2.=info / was / loggen / haproxy-access.log #Voor toegangslogboeklocal2.kennisgeving / was / loggen / haproxy-info.log #Voor service-info - Backend, loadbalancer
Om de wijzigingen door te voeren, start u de rsyslog-daemon opnieuw op zoals weergegeven:
# systemctl herstart rsyslogStart en schakel vervolgens HAProxy in
# systemctl start rsyslog# systemctl schakel rsyslog in
Controleer of HAProxy actief is
# systemctl-status rsyslogStap 3: Installeer en configureer Nginx
Nu is het enige dat overblijft de installatie van Nginx. Log in op elk van de servers en werk eerst de systeempakketten bij:
# lekker updatenVolgende installatie EPEL (extra pakketten voor Enterprise Linux)
# jammie installeren warme uitgaveVoer de opdracht uit om Nginx te installeren:
# jammie installeren nginxStart en schakel vervolgens Nginx in
# systemctl start nginx# systemctl schakel nginx in
Vervolgens gaan we in beide gevallen het bestand index.html aanpassen om te demonstreren of te simuleren hoe de load balancer in staat is om webverkeer over beide servers te verdelen.
Voor server_01
# echo 'server_01. Hé! Welkom bij de eerste webserver' > index.htmlVoor server_02
# echo 'server_02. Hé! Welkom bij de tweede webserver' > index.htmlStart Nginx opnieuw om de wijzigingen door te voeren
# systemctl herstart nginxStap 4: Testen of de load balancer werkt
We zijn eindelijk op het punt waar we willen zien of de configuratie werkt. Log dus in op de load balancer en voer de curl-opdracht 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
Vernieuw nu de webpagina en controleer of deze inhoud van de andere webserver weergeeft
Perfect ! De load balance verdeelt het IP-verkeer gelijkmatig tussen de twee webservers!
Dit is het einde van deze zelfstudie over hoe u HAProxy op CentOS 8 kunt installeren en configureren. Uw feedback wordt zeer op prijs gesteld.