HAProxy

HAProxy instellen als Load Balancer voor Nginx in CentOS 8Cent

HAProxy instellen als Load Balancer voor Nginx in CentOS 8Cent
High Availability Proxy, ook 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 inkomend webverkeer over meerdere webservers met behulp van bepaalde criteria. Door dit te doen, zorgt het voor een hoge beschikbaarheid en fouttolerantie in het geval 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 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-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

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/hosts
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   load balancer

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 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 update

Installeer vervolgens HA Proxy zoals weergegeven

# yum installeer haproxy

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

# cd /etc/haproxy

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

Ga vervolgens verder en open het configuratiebestand

vim haproxy.cfg

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

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

Plak de volgende regels, sla op en sluit af

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

Start 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 update

Installeer vervolgens EPEL (Extra Packages for Enterprise Linux)

# yum installeer epel-release

Voer de opdracht uit om Nginx te installeren:

# yum installeer nginx

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

Voor server_02

# echo "server_02. Hallo ! Welkom bij de tweede webserver" > index.html

Om de wijzigingen door te voeren, herstart Nginx

# 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. Dus log in op de load balancer en voer het curl-commando 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


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.

Beste opdrachtregelspellen voor Linux
De opdrachtregel is niet alleen je grootste bondgenoot bij het gebruik van Linux, hij kan ook de bron van entertainment zijn omdat je hem kunt gebruik...
Beste gamepad-toewijzingsapps voor Linux
Als je graag games op Linux speelt met een gamepad in plaats van een typisch toetsenbord- en muisinvoersysteem, zijn er enkele handige apps voor jou. ...
Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...