HAProxy (High Avai­la­bi­li­ty Proxy) er et populært program, der kan bruges som reverse proxy og load balancer. Det kan nemt in­stal­le­res på Ubuntu 22.04 med blot få trin.

Hvad er HAProxy?

HAProxy er et kraft­fuldt open source- program, der kan bruges som load balancer eller reverse proxy. Det anvendes ofte til at fordele da­ta­tra­fik­ken på flere servere og dermed forbedre we­bap­pli­ka­tio­ners til­gæn­ge­lig­hed og ydeevne. HAProxy er en gen­nem­prø­vet løsning, især i ar­ki­tek­tu­rer, der kræver stor ska­ler­bar­hed og høj drifts­sik­ker­hed.

Takket være sin høje ef­fek­ti­vi­tet kan HAProxy behandle tusindvis af an­mod­nin­ger i sekundet uden at belaste sy­stemres­sour­cer­ne i næv­ne­vær­dig grad. Softwaren un­der­støt­ter for­skel­li­ge metoder til be­last­nings­for­de­ling, såsom round robin, least con­nection og source IP hashing. Den tilbyder desuden funk­tio­ner som SSL-ter­mi­ne­ring, sund­hed­s­tjek og sticky sessions for at sikre en optimal styring af da­ta­tra­fik­ken. En anden styrke er mu­lig­he­den for at vi­de­re­sen­de trafik på baggrund af spe­ci­fik­ke regler eller he­a­dero­p­lys­nin­ger.

HAProxy anvendes i mange store virk­som­he­der og cloud-miljøer. Kon­fi­gu­ra­tio­nen foregår via en enkel, men fleksibel kon­fi­gu­ra­tions­fil, der giver mulighed for de­tal­je­ret til­pas­ning efter dine behov.

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

Trin 1: Opdater systemet

Inden du går i gang med in­stal­la­tio­nen, bør du sikre dig, at din Linux-di­stri­bu­tion er opdateret. Dette sikrer, at alle pakker er op­da­te­re­de, og at even­tu­el­le sik­ker­heds­ri­si­ci er blevet fjernet. For at gøre dette skal du åbne en terminal og køre følgende kom­man­do­er:

sudo apt update && sudo apt upgrade -y
bash

Denne kom­man­do­se­kvens opdaterer først pak­ke­li­sten for at finde de nyeste versioner af den in­stal­le­re­de software. Derefter opdateres alle ek­si­ste­ren­de pakker til de nyeste til­gæn­ge­li­ge versioner. Pa­ra­me­te­ren -y sikrer, at alle op­da­te­rin­ger au­to­ma­tisk bekræftes.

Trin 2: Installer HAProxy

Når systemet er blevet opdateret, kan du in­stal­le­re HAProxy med følgende kommando:

sudo apt install haproxy -y
bash

Denne kommando henter HAProxy fra de of­fi­ci­el­le Ubuntu-pak­kekil­der og in­stal­le­rer pro­gram­met. In­stal­la­tio­nen går som regel hurtigt, da HAProxy er et let­vægts­pro­gram. Når in­stal­la­tio­nen er færdig, kan du kon­trol­le­re, at HAProxy er blevet in­stal­le­ret korrekt, ved at køre følgende kommando:

haproxy -v
bash

Re­sul­ta­tet bør vise den in­stal­le­re­de version af HAProxy.

Billede: Screenshot of the current HAProxy version in the terminal
After you have executed the command, the currently installed version of HAProxy will be displayed.

Trin 3: Aktiver og start HAProxy-tjenesten

Efter in­stal­la­tio­nen skal du sikre dig, at HAProxy-tjenesten kører. Start først HAProxy som ad­mi­ni­stra­tor med følgende kommando:

sudo systemctl start haproxy
bash

Brug denne kommando til at kon­trol­le­re, om tjenesten er startet korrekt:

sudo systemctl status haproxy
bash

Hvis HAProxy kører, bør ud­skrif­ten se no­gen­lun­de sådan ud:

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

For at sikre, at HAProxy også starter au­to­ma­tisk efter en genstart, skal du aktivere tjenesten med:

sudo systemctl enable haproxy
bash

Trin 4: Kon­fi­gu­rer HAProxy

HAProxy kon­fi­gu­re­res via kon­fi­gu­ra­tions­fi­len /etc/haproxy/haproxy.cfg. Før du foretager ændringer, er det en god idé at lave en sik­ker­heds­ko­pi af den op­rin­de­li­ge fil:

sudo cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.backup
bash
Note

Ved at lave en kopi af den op­rin­de­li­ge fil sikrer du, at du til enhver tid kan vende tilbage til en fun­ge­ren­de tilstand. På den måde kan du foretage ændringer med minimal risiko.

For at redigere den op­rin­de­li­ge fil skal du åbne den i et tek­stre­di­ge­rings­pro­gram efter eget valg, f.eks. nano eller Vim. I vores eksempel bruger vi nano:

sudo nano /etc/haproxy/haproxy.cfg
bash

En enkel kon­fi­gu­ra­tion af be­last­nings­for­de­ling kunne se sådan ud:

frontend http_front
	bind *:80
	default_backend web_servers
backend web_servers
	balance roundrobin
	server web1 192.168.1.10:80 check
	server web2 192.168.1.11:80 check

I eksemplet med load ba­lan­ce­ren fordeles den indgående HTTP-trafik på port 80 mellem to backend- servere (»web1« og »web2«). Be­last­nin­gen fordeles efter round-robin-prin­cip­pet, så an­mod­nin­ger­ne vi­de­re­sen­des skiftevis til serverne.

Trin 5: Genstart og test HAProxy

Efter kon­fi­gu­ra­tions­æn­drin­gen skal HAProxy gen­star­tes, for at æn­drin­ger­ne træder i kraft. Dette gøres med følgende ter­mi­nal­kom­man­do:

sudo systemctl restart haproxy
bash

Hvis der opstår fejl, kan du kon­trol­le­re HAProxy-kon­fi­gu­ra­tions­fi­len for syn­taks­fejl ved hjælp af ne­den­stå­en­de kommando:

haproxy -c -f /etc/haproxy/haproxy.cfg
bash

En korrekt kon­fi­gu­ra­tion bekræftes af udgang Configuration file is valid. Du kan nu teste, om HAProxy fungerer som ønsket, ved at indtaste din servers of­fent­li­ge IP-adresse eller do­mæ­ne­navn i en browser.

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