HAProxy je zmogljiva od­pr­to­ko­dna pro­gram­ska oprema, ki omogoča po­raz­de­li­tev obre­me­ni­tve in kon­fi­gu­ra­ci­jo proxyja za apli­ka­ci­je, ki temeljijo na pro­to­ko­lih TCP in HTTP. Na sistemu Debian 12 jo je mogoče namestiti v le nekaj korakih, pogosto pa se uporablja v sistemih z visoko raz­po­lo­žlji­vo­stjo za učin­ko­vi­to po­raz­de­li­tev zahtevkov, s čimer izboljša sta­bil­nost in zmo­glji­vost aplikacij.

Kaj je HAProxy?

HAProxy (High Ava­i­la­bi­li­ty Proxy) je zmogljiv in zanesljiv po­raz­de­lje­val­nik obre­me­ni­tve ter povratni proxy, ki se uporablja za po­raz­de­lje­va­nje omrežnega in apli­ka­cij­ske­ga prometa. Apli­ka­ci­ja pri po­raz­de­lje­va­nju obre­me­ni­tve podpira tako 4. sloj (tran­spor­tni sloj, npr. TCP) kot tudi 7. sloj (apli­ka­cij­ski sloj, npr. HTTP) modela OSI. Zaradi nizke za­ka­sni­tve, visoke učin­ko­vi­to­sti in obsežnih možnosti kon­fi­gu­ra­ci­je je HAProxy primeren za podjetja vseh velikosti.

Podjetja in raz­vi­jal­ci upo­ra­blja­jo HAProxy za po­raz­de­li­tev obre­me­ni­tve med več stre­žni­kov v ozadju, pre­pre­če­va­nje izpadov stre­žni­kov in iz­bolj­ša­nje splošne zmo­glji­vo­sti aplikacij. Ta pro­gram­ska oprema ima osrednjo vlogo v številnih spletnih in­fra­struk­tu­rah, zlasti v visoko raz­po­lo­žlji­vih in pri­la­go­dlji­vih apli­ka­ci­jah. Njene glavne funkcije vklju­ču­je­jo za­klju­če­va­nje SSL/TLS-povezav, pre­ver­ja­nje delovanja stre­žni­kov v ozadju, ome­je­va­nje pretoka podatkov in mehanizme za zaščito pred DDoS-napadi.

Kako korak za korakom namestiti HAProxy na Debianu

Korak 1: Po­so­do­bi­te sistem

Pred na­me­sti­tvi­jo HAProxyja po­so­do­bi­te svojo di­s­tri­bu­ci­jo Linuxa. S tem boste za­go­to­vi­li, da so vsi paketi po­so­do­blje­ni in da na­me­sti­tev poteka brez težav.

Naslednja ukazna vrstica posodobi sezname paketov in namesti vse raz­po­lo­žlji­ve po­so­do­bi­tve za Debian 12:

sudo apt update && sudo apt upgrade -y
bash

Korak 2: Na­me­sti­tev HAProxyja

Debian 12 vključuje HAProxy v svoje uradne vire paketov, zato je na­me­sti­tev preprosta z vgrajenim upra­vi­te­ljem paketov apt.

sudo apt install haproxy -y
bash

Ta ukaz prenese in namesti HAProxy skupaj z vsemi po­treb­ni­mi od­vi­snost­mi.

Korak 3: Preverite različico HAProxy

Po na­me­sti­tvi morate preveriti, ali je bil HAProxy uspešno nameščen. To lahko storite tako, da preverite, katera različica HAProxyja je nameščena:

haproxy -v
bash

Izpis naj bi bil približno takšen:

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.

S tem se zagotovi, da je HAProxy pravilno nameščen.

Korak 4: Vklopite HAProxy kot storitev

Da se HAProxy samodejno zažene ob zagonu sistema in deluje ne­pre­ki­nje­no, je treba storitev omogočiti in zagnati.

sudo systemctl enable haproxy
sudo systemctl start haproxy
bash

Nazadnje lahko za pre­ver­ja­nje, ali storitev deluje pravilno, uporabite naslednji ukaz:

sudo systemctl status haproxy
bash

Če HAProxy deluje pravilno, bi morali videti izpis o aktivnem (tečečem) stanju, ki je videti nekako takole:

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

Korak 5: Osnovna kon­fi­gu­ra­ci­ja HAProxyja

Kon­fi­gu­ra­cij­ska datoteka HAProxy se nahaja v /etc/haproxy/haproxy.cfg. Preden začnete spre­mi­nja­ti na­sta­vi­tve, je pri­po­ro­člji­vo narediti varnostno kopijo, na katero se lahko zanesete v primeru napak:

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

Sedaj lahko datoteko urejate z ure­je­val­ni­kom po lastni izbiri (na primer Vim ali nano):

sudo nano /etc/haproxy/haproxy.cfg
bash

Preprosta kon­fi­gu­ra­ci­ja HAProxyja bi lahko izgledala takole:

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

Ta kon­fi­gu­ra­ci­ja porazdeli HTTP-zahteve med dva spletna strežnika po načelu krožnega izbora. Raz­de­lje­na je na več odsekov. Najprej je tu globalni odsek, ki določa osnovne na­sta­vi­tve za HAProxy. V tem odseku so na primer navedeni upo­rab­ni­ški račun, pod katerim teče HAProxy, število do­vo­lje­nih sočasnih povezav in mesto shra­nje­va­nja dnevnikov. Določiti je mogoče tudi imenik chroot, da se HAProxy izvaja v omejenem okolju in s tem poveča varnost.

Za splošnimi na­sta­vi­tva­mi sledi oddelek defaults, v katerem so določene privzete vrednosti za vse nadaljnje kon­fi­gu­ra­ci­je. V tem oddelku je na primer določeno, da HAProxy deluje v načinu HTTP in da je omogočeno beleženje v dnevnik HTTP. Določeni so tudi različni časovni limiti.

Drugi oddelki kon­fi­gu­ra­cij­ske datoteke, na primer oddelka frontend in backend, urejajo sam promet podatkov. Oddelek »frontend« določa, na katerih vratih HAProxy sprejema zahteve in kako se te po­sre­du­je­jo naprej. Oddelek »backend« nato določa strežnike, na katere se promet posreduje. Pri tem je mogoče uporabiti algoritme za po­raz­de­li­tev obre­me­ni­tve.

Po urejanju morate datoteko shraniti in ponovno zagnati HAProxy:

sudo systemctl restart haproxy
bash

Na­me­sti­tev HAProxyja v sistemu Debian 12 je zdaj za­klju­če­na. Na­sta­vi­tve je mogoče kadar koli pri­la­go­di­ti s spre­mi­nja­njem kon­fi­gu­ra­cij­ske datoteke.

Go to Main Menu