HAProxy on võimas avatud läh­te­koo­diga tarkvara, mis võimaldab koormuse jaotamist ja prok­si­ser­ve­rite kon­fi­gu­ree­ri­mist TCP- ja HTTP-põhiste ra­ken­duste jaoks. Selle saab Debian 12-le pai­gal­dada vaid mõne sammuga ning seda ka­su­ta­takse sageli kõrge kät­te­saa­da­vu­sega süs­teemi­des päringute tõhusaks jao­ta­miseks, pa­ran­da­des seeläbi ra­ken­duste sta­biil­sust ja jõudlust.

Mis on HAProxy?

HAProxy (High Avai­la­bi­lity Proxy) on suure jõud­lu­sega ja usal­dus­väärne koormuse jaotaja ning pöörd­proksi, mida ka­su­ta­takse võrgu- ja ra­ken­dus­liik­luse jao­ta­miseks. Rakendus toetab koormuse jao­ta­misel nii OSI-mudeli 4. kihti (trans­por­di­kiht, nt TCP) kui ka 7. kihti (ra­ken­dus­kiht, nt HTTP). Tänu madalale la­tent­su­sele, suurele tõ­hu­su­sele ja laiaula­tus­li­kele kon­fi­gu­rat­sioo­ni­või­ma­lus­tele sobib HAProxy igas suuruses et­te­võ­te­tele.

Et­te­võt­ted ja arendajad kasutavad HAProxy’t koormuse jao­ta­miseks mitme ta­ga­poolse serveri vahel, ser­ve­ri­rik­keid en­ne­ta­miseks ja rakenduse üldise jõudluse pa­ran­da­miseks. Tarkvaral on keskne roll paljudes vee­bi­inf­ra­struk­tuu­ri­des, eriti kõrge kät­te­saa­da­vu­sega ja ska­lee­ri­ta­va­tes ra­ken­dus­tes. Selle pea­mis­teks funkt­sioo­ni­deks on SSL/TLS-ühenduste lõ­pe­ta­mine, ta­ga­poolse serveri töö­kor­ras­oleku kontroll, andmevoo piiramine ja DDoS-kaitse meh­ha­nis­mid.

Kuidas pai­gal­dada HAProxy Debianile samm-sammult

1. samm: Süsteemi uuen­da­mine

Enne HAProxy pai­gal­da­mist peaksite oma Linuxi dist­ri­but­siooni uuendama. See tagab, et kõik paketid on aja­ko­ha­sed ja pai­gal­da­mine kulgeb sujuvalt.

Järgmine käsk uuendab pa­ke­ti­loen­deid ja installib kõik Debian 12 jaoks saadaval olevad uuendused:

sudo apt update && sudo apt upgrade -y
bash

2. samm: HAProxy pai­gal­da­mine

Debian 12 sisaldab HAProxy’t oma ametlikes pakettide allikates, mistõttu on selle pai­gal­da­mine sis­se­ehi­ta­tud pa­ket­ti­hal­duri apt abil lihtne.

sudo apt install haproxy -y
bash

See käsk laadib alla ja installib HAProxy koos kõigi vajalike sõl­tu­vus­tega.

3. samm: Kontrolli HAProxy versiooni

Pärast pai­gal­da­mist tuleks kont­rol­lida, kas HAProxy pai­gal­dati edukalt. Selleks vaadake, milline HAProxy versioon on pai­gal­da­tud:

haproxy -v
bash

Väljund peaks välja nägema umbes selline:

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.

See tagab, et HAProxy on õigesti pai­gal­da­tud.

4. samm: HAProxy teenusena käi­vi­ta­mine

Selleks, et HAProxy käivituks au­to­maat­selt süsteemi käi­vi­ta­misel ja töötaks pidevalt, tuleb teenus sisse lülitada ja käivitada.

sudo systemctl enable haproxy
sudo systemctl start haproxy
bash

Lõpuks saab teenuse töö­kind­luse kont­rol­li­miseks kasutada järgmist käsku:

sudo systemctl status haproxy
bash

Kui HAProxy töötab kor­rekt­selt, peaksite nägema aktiivset (töötavat) väljundit, mis näeb välja umbes selline:

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

5. samm: HAProxy põ­hi­sea­dis­ta­mine

HAProxy kon­fi­gu­rat­sioo­ni­fail asub ka­ta­loo­gis /etc/haproxy/haproxy.cfg. Enne muu­da­tuste tegemist on soo­vi­ta­tav luua va­ru­koo­pia, millele saate vea korral toetuda:

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

Nüüd saad seda faili re­di­gee­rida oma valitud teks­ti­re­dak­toriga (näiteks Vim või nano):

sudo nano /etc/haproxy/haproxy.cfg
bash

Lihtne HAProxy kon­fi­gu­rat­sioon võiks välja näha järgmine:

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

See kon­fi­gu­rat­sioon jaotab HTTP-päringud kahe vee­bi­ser­veri vahel ring­mee­to­dil. See on jagatud mitmeks osaks. Esiteks on olemas üldine osa, milles mää­ra­takse kindlaks HAProxy põ­hi­sät­ted. Näiteks mää­ra­takse selles osas kindlaks ka­su­ta­ja­konto, mille all HAProxy töötab, lubatud sa­ma­aeg­sete ühenduste arv ja lo­gi­fai­lide sal­ves­tus­koht. Samuti on võimalik määrata chroot-kataloog, et käivitada HAProxy piiratud kesk­kon­nas ja seeläbi suu­ren­dada tur­va­li­sust.

Üldiste seadete järel järgneb defaults jagu, kus mää­ra­takse kindlaks kõikide järg­ne­vate kon­fi­gu­rat­sioo­nide vaikimisi väärtused. Näiteks mää­ra­takse selles jaos, et HAProxy töötab HTTP-režiimis ja et HTTP-logimine on lubatud. Samuti mää­ra­takse kindlaks erinevad ooteajad.

Kon­fi­gu­rat­sioo­ni­faili teised osad, näiteks osad frontend ja backend, re­gu­lee­rivad tegelikku and­me­liik­lust. Frontend-osas mää­ra­takse kindlaks, millistel portidel HAProxy päringuid vastu võtab ja kuidas neid edasi suu­na­takse. Backend-osas mää­ra­takse seejärel kindlaks serverid, millele liiklus edasi suu­na­takse. Siin on võimalik kasutada koormuse jaotamise algoritme.

Pärast muutmiste tegemist tuleb fail sal­ves­tada ja HAProxy uuesti käivitada:

sudo systemctl restart haproxy
bash

HAProxy pai­gal­da­mine Debian 12-le on nüüd lõpetatud. Seadeid saab igal ajal muuta, muutes kon­fi­gu­rat­sioo­ni­faili.

Go to Main Menu