HAProxy är en kraftfull öppen käll­kods­pro­gram­va­ra som möjliggör last­ba­lan­se­ring och prox­y­kon­fi­gu­ra­tion för TCP- och HTTP-baserade ap­pli­ka­tio­ner. Den kan in­stal­le­ras på Debian 12 med bara några få steg och används ofta i hög­till­gäng­li­ga system för att effektivt dis­tri­bu­e­ra för­fråg­ning­ar, vilket för­bätt­rar ap­pli­ka­tio­nens sta­bi­li­tet och prestanda.

Vad är HAProxy?

HAProxy (High Avai­la­bi­li­ty Proxy) är en hög­pre­ste­ran­de och pålitlig last­ba­lan­se­ra­re och omvänd proxy som används för att dis­tri­bu­e­ra nätverks- och ap­pli­ka­tionstra­fik. Ap­pli­ka­tio­nen stöder både lager 4 (trans­port­la­ger, t.ex. TCP) och lager 7 (ap­pli­ka­tions­la­ger, t.ex. HTTP) i OSI-modellen när det gäller last­ba­lan­se­ring. Tack vare sin låga latens, höga ef­fek­ti­vi­tet och om­fat­tan­de kon­fi­gu­ra­tions­al­ter­na­tiv är HAProxy lämplig för företag av alla storlekar.

Företag och ut­veck­la­re använder HAProxy för att balansera be­last­ning­en mellan flera backend-servrar, avlyssna ser­verav­brott och förbättra ap­pli­ka­tio­ner­nas totala prestanda. Pro­gram­va­ran spelar en central roll i många web­bin­fra­struk­tu­rer, särskilt i ap­pli­ka­tio­ner med hög till­gäng­lig­het och skal­bar­het. Dess hu­vud­sak­li­ga funk­tio­ner in­klu­de­rar SSL/TLS-ter­mi­ne­ring, häl­so­kon­trol­ler av backend-servrar, has­tig­hets­be­gräns­ning och DDoS-skydds­me­ka­nis­mer.

Hur man in­stal­le­rar HAProxy på Debian steg för steg

Steg 1: Uppdatera systemet

Innan du in­stal­le­rar HAProxy bör du uppdatera din Linux-dis­tri­bu­tion. Detta sä­ker­stäl­ler att alla paket är upp­da­te­ra­de och att in­stal­la­tio­nen går smidigt.

Följande kommando upp­da­te­rar pa­ket­lis­tor­na och in­stal­le­rar alla till­gäng­li­ga upp­da­te­ring­ar för Debian 12:

sudo apt update && sudo apt upgrade -y
bash

Steg 2: In­stal­le­ra HAProxy

Debian 12 in­klu­de­rar HAProxy i sina of­fi­ci­el­la pa­ket­käl­lor, så in­stal­la­tio­nen är enkel med hjälp av den inbyggda pa­ket­han­te­ra­ren apt.

sudo apt install haproxy -y
bash

Detta kommando laddar ner och in­stal­le­rar HAProxy med alla nöd­vän­di­ga beroenden.

Steg 3: Kon­trol­le­ra HAProxy-versionen

Efter in­stal­la­tio­nen bör du kon­trol­le­ra om HAProxy har in­stal­le­rats korrekt. Du kan göra detta genom att hämta den in­stal­le­ra­de versionen av HAProxy:

haproxy -v
bash

Re­sul­ta­tet bör se ut ungefär så här:

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

Detta sä­ker­stäl­ler att HAProxy har in­stal­le­rats korrekt.

Steg 4: Aktivera HAProxy som en tjänst

För att HAProxy ska starta au­to­ma­tiskt vid systemstart och köras permanent måste tjänsten aktiveras och startas.

sudo systemctl enable haproxy
sudo systemctl start haproxy
bash

Slutligen kan följande kommando användas för att kon­trol­le­ra om tjänsten körs korrekt:

sudo systemctl status haproxy
bash

Om HAProxy fungerar korrekt bör du se en aktiv (körande) utdata som ser ut ungefär så här:

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

Steg 5: Grund­läg­gan­de kon­fi­gu­ra­tion av HAProxy

HAProxy-kon­fi­gu­ra­tions­fi­len finns på /etc/haproxy/haproxy.cfg. Innan du gör några ändringar är det lämpligt att skapa en sä­ker­hetsko­pia som du kan använda om något går fel:

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

Nu kan du redigera filen med ett re­di­ge­rings­pro­gram efter eget val (till exempel Vim eller nano):

sudo nano /etc/haproxy/haproxy.cfg
bash

En enkel HAProxy-kon­fi­gu­ra­tion kan se ut så här:

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

Denna kon­fi­gu­ra­tion fördelar HTTP-för­fråg­ning­ar mellan två webb­serv­rar enligt round-robin-principen. Den är uppdelad i flera sektioner. Först finns den globala sektionen, som de­fi­ni­e­rar grundin­ställ­ning­ar­na för HAProxy. Denna sektion anger till exempel vilket an­vän­dar­kon­to HAProxy körs under, antalet samtidiga an­slut­ning­ar som tillåts och var loggarna lagras. En chroot-katalog kan också de­fi­nie­ras för att köra HAProxy i en begränsad miljö och därmed öka sä­ker­he­ten.

Efter de globala in­ställ­ning­ar­na följer avsnitt defaults, där stan­dard­vär­den för alla ef­ter­föl­jan­de kon­fi­gu­ra­tio­ner de­fi­nie­ras. I detta avsnitt anges till exempel att HAProxy ska köras i HTTP-läge och att HTTP-loggning ska vara aktiverad. Olika tids­grän­ser de­fi­nie­ras också.

De andra avsnitten i kon­fi­gu­ra­tions­fi­len, till exempel frontend och backend, styr den faktiska da­ta­tra­fi­ken. Avsnittet frontend anger vilka portar HAProxy ac­cep­te­rar för­fråg­ning­ar på och hur de vi­da­re­be­fordras. Avsnittet backend de­fi­ni­e­rar sedan de servrar till vilka trafiken vi­da­re­be­fordras. Här kan al­go­rit­mer för last­ba­lan­se­ring användas.

Efter re­di­ge­ring­en måste du spara filen och starta om HAProxy:

sudo systemctl restart haproxy
bash

In­stal­la­tio­nen av HAProxy på Debian 12 är nu klar. Kon­fi­gu­ra­tio­nen kan justeras när som helst genom att ändra kon­fi­gu­ra­tions­fi­len.

Gå till huvudmeny