HAProxy er en kraftig programvare med åpen kildekode som muliggjør lastfordeling og proxykonfigurasjon for TCP- og HTTP-baserte applikasjoner. Den kan installeres på Debian 12 med bare noen få trinn og brukes ofte i systemer med høy tilgjengelighet for å fordele forespørsler effektivt, noe som forbedrer applikasjonens stabilitet og ytelse.

Hva er HAProxy?

HAProxy (High Availability Proxy) er en pålitelig lastfordeler og omvendt proxy med høy ytelse som brukes til å fordele nettverks- og applikasjonstrafikk. Programmet støtter både lag 4 (transportlag, f.eks. TCP) og lag 7 (applikasjonslag, f.eks. HTTP) i OSI-modellen når det gjelder lastfordeling. Takket være lav latens, høy effektivitet og omfattende konfigurasjonsmuligheter er HAProxy egnet for bedrifter i alle størrelser.

Bedrifter og utviklere bruker HAProxy til å fordele belastningen på flere backend-servere, håndtere serverbrudd og forbedre applikasjonens generelle ytelse. Programvaren spiller en sentral rolle i mange webinfrastrukturer, særlig i applikasjoner som krever høy tilgjengelighet og skalerbarhet. Blant hovedfunksjonene finner man SSL/TLS-terminering, tilstandskontroll av backend-servere, hastighetsbegrensning og mekanismer for DDoS-beskyttelse.

Slik installerer du HAProxy på Debian trinn for trinn

Trinn 1: Oppdater systemet

Før du installerer HAProxy, bør du oppdatere Linux-distribusjonen din. Dette sikrer at alle pakker er oppdaterte og at installasjonen går problemfritt.

Følgende kommando oppdaterer pakkelistene og installerer alle tilgjengelige oppdateringer for Debian 12:

sudo apt update && sudo apt upgrade -y
bash

Trinn 2: Installer HAProxy

Debian 12 har HAProxy i sine offisielle pakkekilder, så installasjonen er enkel ved hjelp av den innebygde pakkehåndtereren apt.

sudo apt install haproxy -y
bash

Denne kommandoen laster ned og installerer HAProxy sammen med alle nødvendige avhengigheter.

Trinn 3: Sjekk HAProxy-versjonen

Etter installasjonen bør du sjekke om HAProxy ble installert riktig. Du kan gjøre dette ved å sjekke hvilken versjon av HAProxy som er installert:

haproxy -v
bash

Resultatet bør se omtrent slik ut:

Image: 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.

Dette sikrer at HAProxy er installert riktig.

Trinn 4: Aktiver HAProxy som en tjeneste

For at HAProxy skal starte automatisk ved oppstart av systemet og kjøre kontinuerlig, må tjenesten aktiveres og startes.

sudo systemctl enable haproxy
sudo systemctl start haproxy
bash

Til slutt kan følgende kommando brukes for å sjekke om tjenesten kjører som den skal:

sudo systemctl status haproxy
bash

Hvis HAProxy kjører som den skal, bør du se en aktiv (kjørende) utdata som ser omtrent slik ut:

Image: 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)’.

Trinn 5: Grunnleggende konfigurasjon av HAProxy

HAProxy-konfigurasjonsfilen ligger i /etc/haproxy/haproxy.cfg. Før du gjør endringer, anbefales det å lage en sikkerhetskopi som du kan bruke hvis det oppstår feil:

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

Nå kan du redigere filen med et tekstredigeringsprogram etter eget valg (for eksempel Vim eller nano):

sudo nano /etc/haproxy/haproxy.cfg
bash

En enkel HAProxy-konfigurasjon kan se slik ut:

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

Denne konfigurasjonen fordeler HTTP-forespørsler mellom to webservere etter round-robin-prinsippet. Den er delt inn i flere seksjoner. Først kommer den globale seksjonen, som definerer grunnleggende innstillinger for HAProxy. Denne seksjonen angir for eksempel brukerkontoen som HAProxy kjører under, antall tillatte samtidige tilkoblinger og hvor loggene lagres. Det kan også defineres en chroot-katalog for å kjøre HAProxy i et begrenset miljø og dermed øke sikkerheten.

Etter de generelle innstillingene følger seksjon defaults, der standardverdiene for alle påfølgende konfigurasjoner defineres. I denne seksjonen angis det for eksempel at HAProxy skal kjøre i HTTP-modus og at HTTP-loggføring er aktivert. Det defineres også ulike tidsavbrudd.

De andre delene av konfigurasjonsfilen, for eksempel frontend og backend, styrer selve datatrafikken. Frontend-delen angir hvilke porter HAProxy mottar forespørsler på, og hvordan disse videresendes. Backend-delen definerer deretter serverne som trafikken videresendes til. Her kan man benytte algoritmer for lastfordeling.

Etter redigering må du lagre filen og starte HAProxy på nytt:

sudo systemctl restart haproxy
bash

Installasjonen av HAProxy på Debian 12 er nå fullført. Konfigurasjonen kan tilpasses når som helst ved å endre konfigurasjonsfilen.

Go to Main Menu