„HAProxy“ – tai galinga atvirojo kodo prog­ra­mi­nė įranga, lei­džian­ti už­tik­rin­ti apkrovos ba­lan­sa­vi­mą ir proxy kon­fi­gū­ra­ci­ją TCP bei HTTP pro­to­ko­lais vei­kian­čioms prog­ra­moms. Ji įdiegiama „Debian 12“ sistemoje vos per kelis žingsnius ir dažnai naudojama aukšto pa­ti­ki­mu­mo sistemose, siekiant efek­ty­viai pa­skirs­ty­ti užklausas, taip pa­di­di­nant programų stabilumą ir našumą.

Kas yra HAProxy?

HAProxy (High Avai­la­bi­li­ty Proxy) – tai našus ir patikimas apkrovos pa­skirs­ty­mo įrenginys bei at­virkš­ti­nis proxy, skirtas tinklo ir programų srautams pa­skirs­ty­ti. Ši programa, vykdydama apkrovos pa­skirs­ty­mą, palaiko tiek OSI modelio 4-ąjį lygį (trans­por­to lygį, pvz., TCP), tiek 7-ąjį lygį (tai­ko­mo­sios programos lygį, pvz., HTTP). Dėl mažos la­ten­ti­nės trukmės, didelio efek­ty­vu­mo ir išsamių kon­fi­gū­ra­ci­jos parinkčių HAProxy tinka įvairių dydžių įmonėms.

Įmonės ir prog­ra­muo­to­jai naudoja „HAProxy“, kad pa­skirs­ty­tų apkrovą tarp kelių už­pa­ka­li­nių serverių, užkirstų kelią serverių gedimams ir pagerintų bendrą programos našumą. Ši prog­ra­mi­nė įranga atlieka pag­rin­di­nį vaidmenį daugelyje interneto inf­rastruk­tū­rų, ypač aukšto pa­ti­ki­mu­mo ir mastelio keitimo galimybes tu­rin­čio­se prog­ra­mo­se. Jos pag­rin­di­nės funkcijos apima SSL/TLS ryšio užbaigimą, už­pa­ka­li­nių serverių veikimo pa­tik­ri­ni­mus, srauto ribojimą ir DDoS atakų apsaugos me­cha­niz­mus.

Kaip žingsnis po žingsnio įdiegti HAProxy „Debian“ sistemoje

1 žingsnis: At­nau­jin­ki­te sistemą

Prieš diegdami „HAProxy“, tu­rė­tu­mė­te at­nau­jin­ti savo „Linux“ dist­ri­bu­ci­ją. Tai užtikrins, kad visi paketai būtų naujausi ir kad diegimas vyktų sklan­džiai.

Ši komanda atnaujina paketų sąrašus ir įdiegia visus galimus „Debian 12“ at­nau­ji­ni­mus:

sudo apt update && sudo apt upgrade -y
bash

2 žingsnis: įdiekite HAProxy

„Debian 12“ ofi­cia­liuo­se paketų šal­ti­niuo­se yra įtrauktas „HAProxy“, todėl jį įdiegti naudojant įdiegtą paketų tvarkyklę „apt“ yra paprasta.

sudo apt install haproxy -y
bash

Ši komanda at­si­siun­čia ir įdiegia „HAProxy“ su visomis rei­ka­lin­go­mis pri­klau­so­my­bė­mis.

3 žingsnis: Pa­tik­rin­ki­te „HAProxy“ versiją

Įdiegus programą, reikėtų pa­tik­rin­ti, ar „HAProxy“ buvo įdiegta sėkmingai. Tai galima padaryti pa­tik­ri­nus įdiegtą „HAProxy“ versiją:

haproxy -v
bash

Re­zul­ta­tas turėtų atrodyti maždaug taip:

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.

Tai užtikrina, kad „HAProxy“ buvo įdiegta teisingai.

4 žingsnis: Įjunkite „HAProxy“ kaip paslaugą

Kad HAProxy pa­leis­tų­si au­to­ma­tiš­kai paleidus sistemą ir veiktų nuolat, paslauga turi būti įjungta ir paleista.

sudo systemctl enable haproxy
sudo systemctl start haproxy
bash

Ga­liau­siai, norint pa­tik­rin­ti, ar paslauga veikia tinkamai, galima naudoti šią komandą:

sudo systemctl status haproxy
bash

Jei „HAProxy“ veikia tinkamai, tu­rė­tu­mė­te matyti aktyvų (veikiantį) išvesties srautą, kuris atrodo maždaug taip:

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 žingsnis: Pag­rin­di­nis „HAProxy“ kon­fi­gū­ra­vi­mas

HAProxy kon­fi­gū­ra­ci­jos failas yra /etc/haproxy/haproxy.cfg kataloge. Prieš darant bet kokius pa­kei­ti­mus, patartina sukurti atsarginę kopiją, kuria galėsite pa­si­nau­do­ti, jei įvyktų klaidų:

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

Dabar galite redaguoti failą pa­si­rink­tu re­dak­to­riu­mi (pa­vyz­džiui, „Vim“ ar „nano“):

sudo nano /etc/haproxy/haproxy.cfg
bash

Paprasta „HAProxy“ kon­fi­gū­ra­ci­ja galėtų atrodyti taip:

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

Ši kon­fi­gū­ra­ci­ja HTTP užklausas paskirsto tarp dviejų ži­nia­tink­lio serverių pagal „round-robin“ principą. Ji su­skirs­ty­ta į keletą skyrių. Pir­miau­sia yra bendrasis skyrius, kuriame apibrėžti pag­rin­di­niai HAProxy nu­sta­ty­mai. Pa­vyz­džiui, šiame skyriuje nurodoma vartotojo paskyra, kuria veikia HAProxy, leidžiamų vienu metu vei­kian­čių ryšių skaičius ir žurnalų saugojimo vieta. Taip pat galima nustatyti „chroot“ katalogą, kad HAProxy veiktų ribotoje aplinkoje ir taip būtų pa­di­din­tas saugumas.

Po bendrųjų nustatymų eina defaults skyrius, kuriame api­brė­žia­mos visų tolesnių kon­fi­gū­ra­ci­jų nu­ma­ty­to­sios reikšmės. Pa­vyz­džiui, šiame skyriuje nurodyta, kad „HAProxy“ veikia HTTP režimu ir įjungtas HTTP žur­na­la­vi­mas. Taip pat apibrėžti įvairūs laiko limitai.

Kiti kon­fi­gū­ra­ci­jos failo skyriai, pa­vyz­džiui, frontend ir backend, valdo faktinį duomenų srautą. Skyriuje „frontend“ nurodoma, per kuriuos prievadus „HAProxy“ priima užklausas ir kaip jos per­siun­čia­mos. Skyriuje „backend“ api­brė­žia­mi serveriai, į kuriuos per­siun­čia­mas srautas. Čia galima naudoti apkrovos ba­lan­sa­vi­mo al­go­rit­mus.

Baigę redaguoti, turite išsaugoti failą ir iš naujo paleisti HAProxy:

sudo systemctl restart haproxy
bash

HAProxy įdiegimas „Debian 12“ sistemoje baigtas. Kon­fi­gū­ra­ci­ją galima bet kada pa­ko­re­guo­ti, pa­kei­čiant kon­fi­gū­ra­ci­jos failą.

Go to Main Menu