Hoe HAProxy in te stellen als Load Balancer voor Nginx in CentOS 8

Hoe Haproxy In Te Stellen Als Load Balancer Voor Nginx In Centos 8



High Availability Proxy, ook wel afgekort als HAProxy, is een lichtgewicht en snelle load balancer die ook dienst doet als proxyserver. Als load balancer speelt het een cruciale rol bij het verdelen van binnenkomend webverkeer over meerdere webservers met behulp van bepaalde criteria. Hierdoor zorgt het voor een hoge beschikbaarheid en fouttolerantie in het geval dat er te veel gelijktijdige verzoeken zijn die een enkele webserver kunnen overbelasten.

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   loadbalancer

Bevestig 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 updaten

Installeer vervolgens HA Proxy zoals weergegeven

# jammie installeren haproxy

Na een succesvolle installatie navigeert u naar de haproxy-directory.

# CD / enzovoort / haproxy

Best 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.bak

Ga vervolgens verder en open het configuratiebestand

omdat haproxy.cfg

Zorg 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.conf

Zorg 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.conf

Plak de volgende regels, sla op en sluit af

lokaal2.=info / was / loggen / haproxy-access.log #Voor toegangslogboek
local2.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 rsyslog

Start en schakel vervolgens HAProxy in

# systemctl start rsyslog
# systemctl schakel rsyslog in

Controleer of HAProxy actief is

# systemctl-status rsyslog

Stap 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 updaten

Volgende installatie EPEL (extra pakketten voor Enterprise Linux)

# jammie installeren warme uitgave

Voer de opdracht uit om Nginx te installeren:

# jammie installeren nginx

Start 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.html

Voor server_02

# echo 'server_02. Hé! Welkom bij de tweede webserver' > index.html

Start Nginx opnieuw om de wijzigingen door te voeren

# systemctl herstart nginx

Stap 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.132

U 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-adres

De 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.