HAProxy is krachtige open-source software die load balancing en proxyconfiguratie mogelijk maakt voor TCP- en HTTP-gebaseerde applicaties. Het kan in slechts enkele stappen op Debian 12 worden geïnstalleerd en wordt vaak gebruikt in systemen met hoge beschikbaarheid om verzoeken efficiënt te verdelen, waardoor de stabiliteit en prestaties van applicaties worden verbeterd.

Wat is HAProxy?

HAProxy (High Availability Proxy) is een krachtige en betrouwbare load balancer en reverse proxy die wordt gebruikt voor het verdelen van netwerk- en applicatieverkeer. De applicatie ondersteunt zowel Layer 4 (Transport Layer, bijv. TCP) als Layer 7 (Application Layer, bijv. HTTP) van het OSI-model met betrekking tot load balancing. Dankzij de lage latentie, hoge efficiëntie en uitgebreide configuratiemogelijkheden is HAProxy geschikt voor bedrijven van elke omvang.

Bedrijven en ontwikkelaars gebruiken HAProxy om de belasting over meerdere backend-servers te verdelen, serverstoringen op te vangen en de algehele prestaties van applicaties te verbeteren. De software speelt een centrale rol in veel webinfrastructuren, met name in zeer beschikbare en schaalbare applicaties. De belangrijkste functies zijn onder meer SSL/TLS-beëindiging, gezondheidscontroles van backend-servers, snelheidsbeperking en DDoS-beveiligingsmechanismen.

Hoe HAProxy stap voor stap op Debian te installeren

Stap 1: Werk het systeem bij

Voordat u HAProxy installeert, moet u uw Linux-distributie bijwerken. Dit zorgt ervoor dat alle pakketten up-to-date zijn en dat de installatie soepel verloopt.

Het volgende commando werkt de pakketlijsten bij en installeert alle beschikbare updates voor Debian 12:

sudo apt update && sudo apt upgrade -y
bash

Stap 2: HAProxy installeren

Debian 12 bevat HAProxy in zijn officiële pakketbronnen, dus de installatie is eenvoudig met behulp van de ingebouwde pakketbeheerder apt.

sudo apt install haproxy -y
bash

Met dit commando wordt HAProxy met alle benodigde afhankelijkheden gedownload en geïnstalleerd.

Stap 3: Controleer de HAProxy-versie

Na de installatie moet u controleren of HAProxy succesvol is geïnstalleerd. U kunt dit doen door de geïnstalleerde versie van HAProxy op te halen:

haproxy -v
bash

De uitvoer zou er ongeveer zo uit moeten zien:

Afbeelding: Screenshot of the current HAProxy version in the terminal
After you run the command, the currently installed version of HAProxy will be displayed in your terminal.

Dit zorgt ervoor dat HAProxy correct is geïnstalleerd.

Stap 4: HAProxy als service inschakelen

Om HAProxy automatisch te laten starten bij het opstarten van het systeem en permanent te laten draaien, moet de service worden ingeschakeld en gestart.

sudo systemctl enable haproxy
sudo systemctl start haproxy
bash

Ten slotte kan het volgende commando worden gebruikt om te controleren of de service correct werkt:

sudo systemctl status haproxy
bash

Als HAProxy correct werkt, zou u een actieve (lopende) uitvoer moeten zien die er ongeveer zo uitziet:

Afbeelding: Screenshot of the current HAProxy status in the terminal
You can see in the terminal output that HAProxy is now working without problems from the status ‘active (running)’.

Stap 5: Basisconfiguratie van HAProxy

Het HAProxy-configuratiebestand bevindt zich op /etc/haproxy/haproxy.cfg. Voordat u wijzigingen aanbrengt, is het raadzaam een back-up te maken waarop u kunt terugvallen in geval van fouten:

sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
bash

Nu kunt u het bestand bewerken met een editor naar keuze (zoals Vim of nano):

sudo nano /etc/haproxy/haproxy.cfg
bash

Een eenvoudige HAProxy-configuratie zou er als volgt uit kunnen zien:

global
	log /dev/log local0
	log /dev/log local1 notice
	chroot /var/lib/haproxy
	stats socket /run/haproxy/admin.sock mode 660 level admin
	stats timeout 30s
	user haproxy
	group haproxy
	daemon
defaults
	log global
	option httplog
	option dontlognull
	timeout connect 5000ms
	timeout client 50000ms
	timeout server 50000ms
frontend http_front
	bind *:80
	default_backend web_servers
backend web_servers
	balance roundrobin
	server server1 192.168.1.10:80 check
	server server2 192.168.1.11:80 check
txt

Deze configuratie verdeelt HTTP-verzoeken op een round-robin-manier over twee webservers. Ze is onderverdeeld in verschillende secties. Ten eerste is er de algemene sectie, die de basisinstellingen voor HAProxy definieert. Deze sectie specificeert bijvoorbeeld het gebruikersaccount waaronder HAProxy draait, het aantal toegestane gelijktijdige verbindingen en waar de logbestanden worden opgeslagen. Er kan ook een chroot-directory worden gedefinieerd om HAProxy in een beperkte omgeving te draaien en zo de veiligheid te verhogen.

Na de algemene instellingen volgt sectie defaults, waarin de standaardwaarden voor alle volgende configuraties worden gedefinieerd. In deze sectie wordt bijvoorbeeld gespecificeerd dat HAProxy in HTTP-modus werkt en dat HTTP-logging is ingeschakeld. Ook worden verschillende time-outs gedefinieerd.

De andere secties van het configuratiebestand, zoals frontend en backend, regelen het daadwerkelijke dataverkeer. De frontend-sectie specificeert op welke poorten HAProxy verzoeken accepteert en hoe deze worden doorgestuurd. De backend-sectie definieert vervolgens de servers waarnaar het verkeer wordt doorgestuurd. Hier kunnen algoritmen voor load balancing worden gebruikt.

Na het bewerken moet u het bestand opslaan en HAProxy opnieuw opstarten:

sudo systemctl restart haproxy
bash

De installatie van HAProxy op Debian 12 is nu voltooid. De configuratie kan op elk moment worden aangepast door het configuratiebestand te wijzigen.

Ga naar hoofdmenu