HAProxy installeren en configureren op Rocky Linux 8
Als je een toepassing op het Internet inzet, zijn de beschikbaarheid, schaalbaarheid en prestaties van de toepassing erg belangrijk voor een betere gebruikerservaring. Er zijn veel technologieën die redundantie introduceren, zoals load balancing, clustering en proxy.
HAProxy is een gratis, open bron en betrouwbare load balancer, ontworpen voor websites met veel verkeer. Het balanceert inkomend verkeer door het te verdelen over meerdere achterliggende servers.
In dit artikel laten we je zien hoe je HAProxy installeert op Rocky Linux 8.
Voor het doel van deze handleiding gebruiken we de volgende opstelling:
Server IP adres
HAProxy 172.16.10.10
Backend1 172.16.10.11
Backend2 172.16.10.12
Vereisten
- Een server met RockyLinux 8.
- Een root wachtwoord is op de server ingesteld.
Installeer HAProxy
Standaard is het HAProxy pakket beschikbaar in de Rocky Linux 8 standaard repo. Je kunt het installeren met het volgende commando:
dnf install haproxy -y
Zodra de HAProxy geïnstalleerd is, start je de HAProxy dienst en zet je hem aan om te starten bij het herstarten van het systeem:
systemctl start haproxy
systemctl enable haproxy
Configureer HAProxy
Vervolgens moet je het bestand /etc/haproxy/haproxy.cfg bewerken en twee secties frontend en backend wijzigen. In de sectie Frontend moet je HAProxy IP zijn poort, stats URI en backend naam bepalen. In de sectie backend moet je het load balance algoritme bepalen, de naam van de backend server, IP’s, en poort.
nano /etc/haproxy/haproxy.cfg
Wijzig de volgende secties:
frontend http_balancer bind 172.16.10.10:80 option http-server-close option forwardfor stats uri /haproxy?stats default_backend Apache_webservers backend apache_webservers mode http balance roundrobin option httpchk HEAD / HTTP/1.1\r\nHost:\ localhost server apache1 172.16.10.11:80 check server apache2 172.16.10.12:80 check
Sla het bestand op en sluit het als je klaar bent, dan moet je het bestand /etc/rsyslog.conf bewerken.
nano /etc/rsyslog.conf
Haal het commentaar van de volgende regels weg:
module(load="imudp") input(type="imudp" port="514")
Bewaar en sluit het bestand en maak dan het bestand haproxy.conf voor rsyslog met het volgende commando:
nano /etc/rsyslog.d/haproxy.conf
Voeg de volgende regels toe:
local2.=info /var/log/haproxy-access.log local2.notice /var/log/haproxy-info.log
Start vervolgens de rsyslog service en zet hem aan om te starten bij het herstarten van het systeem:
systemctl start rsyslog
systemctl enable rsyslog
Herstart tenslotte de HAProxy dienst om de veranderingen toe te passen:
systemctl restart haproxy
Je kunt ook de status van de HAProxy dienst controleren met het volgende commando:
systemctl status haproxy
Je zou de volgende uitvoer moeten zien:
? haproxy.service - HAProxy Load Balancer Loaded: loaded (/usr/lib/systemd/system/haproxy.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2021-08-03 03:10:37 EDT; 1min 16s ago Process: 44032 ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 44036 (haproxy) Tasks: 2 (limit: 12524) Memory: 3.1M CGroup: /system.slice/haproxy.service ??44036 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid ??44111 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid Aug 03 03:10:36 RockyLinux8 systemd[1]: Starting HAProxy Load Balancer... Aug 03 03:10:37 RockyLinux8 systemd[1]: Started HAProxy Load Balancer.
Configureer Firewall
Vervolgens moet je op alle servers firewalld instellen en poort 80 door de firewall toelaten.
Je kunt het volgende commando uitvoeren om poort 80 toe te staan:
firewall-cmd --permanent --add-port=80/tcp
Herlaad vervolgens de dienst firewalld om de veranderingen toe te passen.
firewall-cmd --reload
Configureer de achterliggende servers
Vervolgens moet je op beide backend servers de Apache server installeren. Voer het volgende commando uit om de Apache server te installeren.
dnf install httpd -y
Zodra Apache server geïnstalleerd is, start je de Apache dienst en schakel je hem in om te starten bij het herstarten van het systeem:
systemctl start httpd
systemctl enable httpd
Vervolgens moet je op beide backend servers het standaard index.html bestand wijzigen.
Bewerk op de eerste backend het index.html bestand met het volgende commando:
nano /usr/share/httpd/noindex/index.html
Verwijder alle regels en voeg de volgende regel toe:
Welcome to First Apache Web Server!
Sla het bestand op en sluit het als je klaar bent.
Op de tweede backend bewerk je het index.html bestand met het volgende commando:
nano /usr/share/httpd/noindex/index.html
Verwijder alle regels en voeg de volgende regel toe:
Welcome to Second Apache Web Server!
Sla het bestand op en sluit het als je klaar bent.
Verifieer HAProxy
Op dit punt is HAProxy ingesteld om alle inkomende verzoeken door te sturen naar de backend servers op basis van het load-balancing algoritme. Nu is het tijd om te controleren of HAProxy goed werkt of niet.
Open je web browser en typ het HAProxy IP in de URL http://172.16.10.10. Je zou je eerste apache webserver pagina moeten zien:
Ververs vervolgens dezelfde pagina nog eens, je zou je tweede apache webserver pagina moeten zien:
Dit bevestigt dat HAProxy werkt zoals verwacht en het verkeer verdeelt tussen twee backend servers.
Conclusie
Gefeliciteerd! Je hebt met succes de HAProxy load balancer geïnstalleerd en ingesteld op Rocky Linux 8. Je kunt nu HAProxy in de productie-omgeving implementeren om hoge prestaties en schaalbaarheid te bereiken.