HAProxy er et kraft­fuldt open source-program, der muliggør be­last­nings­for­de­ling og proxy­kon­fi­gu­ra­tion for TCP- og HTTP-baserede ap­pli­ka­tio­ner. Det kan in­stal­le­res på Debian 12 på blot få trin og bruges ofte i systemer med høj til­gæn­ge­lig­hed til effektivt at fordele an­mod­nin­ger, hvilket forbedrer ap­pli­ka­tio­ner­nes sta­bi­li­tet og ydeevne.

Hvad er HAProxy?

HAProxy (High Avai­la­bi­li­ty Proxy) er en højty­den­de og pålidelig load balancer og reverse proxy, der anvendes til at fordele netværks- og ap­pli­ka­tions­tra­fik. Løsningen un­der­støt­ter både lag 4 (trans­port­lag, f.eks. TCP) og lag 7 (ap­pli­ka­tions­lag, f.eks. HTTP) i OSI-modellen i for­bin­del­se med load balancing. Takket være sin lave latenstid, høje ef­fek­ti­vi­tet og om­fat­ten­de kon­fi­gu­ra­tions­mu­lig­he­der er HAProxy velegnet til virk­som­he­der af alle stør­rel­ser.

Virk­som­he­der og udviklere bruger HAProxy til at fordele be­last­nin­gen på flere backend-servere, afbøde ser­ver­ud­fald og forbedre ap­pli­ka­tio­ner­nes samlede ydeevne. Softwaren spiller en central rolle i mange we­b­in­fra­struk­tu­rer, især i ap­pli­ka­tio­ner, der kræver høj til­gæn­ge­lig­hed og ska­ler­bar­hed. De vigtigste funk­tio­ner omfatter SSL/TLS-ter­mi­ne­ring, sund­hed­s­tjek af backend-servere, ha­stig­heds­be­græns­ning og me­ka­nis­mer til be­skyt­tel­se mod DDoS-angreb.

Sådan in­stal­le­res HAProxy på Debian trin for trin

Trin 1: Opdater systemet

Inden du in­stal­le­rer HAProxy, bør du opdatere din Linux-di­stri­bu­tion. Det sikrer, at alle pakker er op­da­te­re­de, og at in­stal­la­tio­nen forløber pro­blem­frit.

Følgende kommando opdaterer pak­ke­li­ster­ne og in­stal­le­rer alle til­gæn­ge­li­ge op­da­te­rin­ger til Debian 12:

sudo apt update && sudo apt upgrade -y
bash

Trin 2: Installer HAProxy

Debian 12 in­de­hol­der HAProxy i sine of­fi­ci­el­le pak­kekil­der, så det er nemt at in­stal­le­re det ved hjælp af den ind­byg­ge­de pak­ke­hånd­te­ring, apt.

sudo apt install haproxy -y
bash

Denne kommando henter og in­stal­le­rer HAProxy sammen med alle nød­ven­di­ge af­hæn­gig­he­der.

Trin 3: Kon­trol­ler HAProxy-versionen

Efter in­stal­la­tio­nen bør du kon­trol­le­re, om HAProxy er blevet in­stal­le­ret korrekt. Det kan du gøre ved at se, hvilken version af HAProxy der er in­stal­le­ret:

haproxy -v
bash

Re­sul­ta­tet bør se no­gen­lun­de sådan ud:

Billede: 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 in­stal­le­ret korrekt.

Trin 4: Aktiver HAProxy som en tjeneste

For at HAProxy kan starte au­to­ma­tisk ved sy­stem­start og køre kon­ti­nu­er­ligt, skal tjenesten aktiveres og startes.

sudo systemctl enable haproxy
sudo systemctl start haproxy
bash

Til sidst kan man bruge følgende kommando til at kon­trol­le­re, om tjenesten kører korrekt:

sudo systemctl status haproxy
bash

Hvis HAProxy kører korrekt, bør du se en aktiv (kørende) udskrift, der ser no­gen­lun­de sådan ud:

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

Trin 5: Grund­læg­gen­de kon­fi­gu­ra­tion af HAProxy

HAProxy-kon­fi­gu­ra­tions­fi­len findes i /etc/haproxy/haproxy.cfg. Inden du foretager ændringer, anbefales det at lave en sik­ker­heds­ko­pi, som du kan bruge, hvis der opstår fejl:

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

Nu kan du redigere filen med et tek­stre­di­ge­rings­pro­gram efter eget valg (f.eks. Vim eller nano):

sudo nano /etc/haproxy/haproxy.cfg
bash

En enkel HAProxy-kon­fi­gu­ra­tion kunne se sådan ud:

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 kon­fi­gu­ra­tion fordeler HTTP-an­mod­nin­ger mellem to web­ser­ve­re efter round-robin-prin­cip­pet. Den er opdelt i flere sektioner. Først er der den globale sektion, som definerer de grund­læg­gen­de indstil­lin­ger for HAProxy. I denne sektion angives ek­sem­pel­vis den bru­ger­kon­to, som HAProxy kører under, antallet af tilladte samtidige for­bin­del­ser og hvor log­fi­ler­ne gemmes. Der kan også defineres et chroot-katalog for at køre HAProxy i et afgrænset miljø og dermed øge sik­ker­he­den.

Efter de generelle indstil­lin­ger følger afsnit defaults, hvor stan­dard­vær­di­er­ne for alle ef­ter­føl­gen­de kon­fi­gu­ra­tio­ner defineres. I dette afsnit angives det ek­sem­pel­vis, at HAProxy kører i HTTP-tilstand, og at HTTP-logning er aktiveret. Der defineres også for­skel­li­ge timeout-værdier.

De øvrige afsnit i kon­fi­gu­ra­tions­fi­len, såsom afsnit frontend og backend, styrer selve da­ta­tra­fik­ken. Afsnittet »frontend« angiver, hvilke porte HAProxy modtager an­mod­nin­ger på, og hvordan disse vi­de­re­sen­des. Afsnittet »backend« definerer derefter de servere, som trafikken vi­de­re­sen­des til. Her kan der anvendes al­go­rit­mer til be­last­nings­for­de­ling.

Når du er færdig med at redigere, skal du gemme filen og genstarte HAProxy:

sudo systemctl restart haproxy
bash

In­stal­la­tio­nen af HAProxy på Debian 12 er nu afsluttet. Kon­fi­gu­ra­tio­nen kan tilpasses når som helst ved at ændre kon­fi­gu­ra­tions­fi­len.

Gå til ho­ved­me­nu­en