HAProxy (High Avai­la­bi­li­ty Proxy) – tai populiari prog­ra­mi­nė įranga, kuri gali būti naudojama kaip at­virkš­ti­nis proxy serveris ir apkrovos pa­skirs­ty­mo įrenginys. Ją galima lengvai įdiegti „Ubuntu 22.04“ sistemoje vos per kelis žingsnius.

Kas yra HAProxy?

„HAProxy“ – tai galinga atvirojo kodo prog­ra­mi­nė įranga, kuri gali būti naudojama kaip apkrovos ba­lan­sa­vi­mo įrenginys arba at­virkš­ti­nis tarpinis serveris. Ji dažnai naudojama incidentų duomenų srautui pa­skirs­ty­ti keliems ser­ve­riams, taip pa­di­di­nant ži­nia­tink­lio programų pri­ei­na­mu­mą ir našumą. „HAProxy“ yra patikimas spren­di­mas, ypač didelio mastelio ir atsparių gedimams ar­chi­tek­tū­ro­se.

Dėl didelio našumo „HAProxy“ gali apdoroti tūks­tan­čius užklausų per sekundę, ne­ap­krau­da­ma sistemos išteklių. Programa palaiko įvairius apkrovos pa­skirs­ty­mo metodus, pa­vyz­džiui, „round robin“, „least con­nec­tion“ ir šaltinio IP adresų maišymą. Be to, ji siūlo tokias funkcijas kaip SSL už­bai­gi­mas, veikimo pa­tik­ri­ni­mai ir „sticky sessions“, lei­džian­čias op­ti­ma­liai valdyti duomenų srautą. Kitas pri­va­lu­mas – galimybė persiųsti srautą pagal konk­re­čias taisykles arba antraštės in­for­ma­ci­ją.

„HAProxy“ naudojama daugelyje didelių įmonių ir debesų aplinkose. Kon­fi­gū­ra­vi­mas at­lie­ka­mas naudojant paprastą, bet lanksčią kon­fi­gū­ra­ci­jos failą, kuris leidžia išsamiai pri­tai­ky­ti sistemą pagal jūsų poreikius.

Kaip žingsnis po žingsnio įdiegti HAProxy „Ubuntu 22.04“

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

Prieš pradėdami diegimą, tu­rė­tu­mė­te įsi­ti­kin­ti, kad jūsų „Linux“ dist­ri­bu­ci­ja yra at­nau­jin­ta. Tai užtikrins, kad visi paketai būtų naujausi ir kad būtų pa­ša­lin­tos galimos saugumo spragos. Norėdami tai padaryti, ati­da­ry­ki­te terminalą ir įvyk­dy­ki­te šias komandas:

sudo apt update && sudo apt upgrade -y
bash

Ši komandų seka pir­miau­sia atnaujina paketų sąrašą, kad būtų nu­sta­ty­tos nau­jau­sios įdiegtos prog­ra­mi­nės įrangos versijos. Po to visi esami paketai at­nau­ji­na­mi iki naujausių galimų versijų. Pa­ra­met­ras -y užtikrina, kad visi at­nau­ji­ni­mai būtų au­to­ma­tiš­kai pa­tvir­tin­ti.

2 žingsnis: įdiekite HAProxy

At­nau­ji­nus sistemą, galite įdiegti HAProxy naudodami šią komandą:

sudo apt install haproxy -y
bash

Ši komanda at­si­siun­čia „HAProxy“ iš oficialių „Ubuntu“ paketų šaltinių ir įdiegia programą. Įdiegimas paprastai trunka neilgai, nes „HAProxy“ yra nedidelės apimties programa. Baigus įdiegimą, galite pa­tik­rin­ti, ar „HAProxy“ buvo sėkmingai įdiegta, pa­leis­da­mi šią komandą:

haproxy -v
bash

Re­zul­ta­tuo­se turėtų būti nurodyta įdiegta „HAProxy“ versija.

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

3 žingsnis: Įjunkite ir pa­lei­s­ki­te „HAProxy“ paslaugą

Įdiegus programą, reikia įsi­ti­kin­ti, kad „HAProxy“ paslauga veikia. Pir­miau­sia pa­lei­s­ki­te „HAProxy“ kaip ad­mi­nist­ra­to­rius, naudodami šią komandą:

sudo systemctl start haproxy
bash

Naudokite šią komandą, kad pa­tik­rin­tu­mė­te, ar paslauga buvo sėkmingai paleista:

sudo systemctl status haproxy
bash

Jei „HAProxy“ veikia, išvestis turėtų atrodyti maždaug taip:

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

Kad HAProxy pa­leis­tų­si au­to­ma­tiš­kai ir po sistemos per­kro­vi­mo, įjunkite paslaugą taip:

sudo systemctl enable haproxy
bash

4 žingsnis: HAProxy kon­fi­gū­ra­vi­mas

HAProxy kon­fi­gū­ruo­ja­mas naudojant kon­fi­gū­ra­ci­jos failą /etc/haproxy/haproxy.cfg. Prieš darant bet kokius pa­kei­ti­mus, re­ko­men­duo­ja­ma padaryti ori­gi­na­laus failo atsarginę kopiją:

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

Sukurdami ori­gi­na­laus failo kopiją, už­si­tik­ri­na­te, kad bet kuriuo metu galėsite grįžti prie vei­kian­čios versijos. Tokiu būdu pa­kei­ti­mus galima atlikti be didelės rizikos.

Norėdami redaguoti originalų failą, ati­da­ry­ki­te jį pa­si­rink­tu teksto re­dak­to­riu­mi, pa­vyz­džiui, „nano“ arba „Vim“. Mūsų pavyzdyje naudosime „nano“:

sudo nano /etc/haproxy/haproxy.cfg
bash

Paprasta apkrovos pa­skirs­ty­mo kon­fi­gū­ra­ci­ja galėtų atrodyti taip:

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

Pa­teik­ta­me apkrovos pa­skirs­ty­to­jo pavyzdyje į 80-ąjį prievadą pa­ten­kan­tis HTTP srautas pa­skirs­to­mas dviem už­pa­ka­li­nės grandies ser­ve­riams („web1“ ir „web2“). Apkrova pa­skirs­to­ma pagal „round-robin“ principą, todėl užklausos per­duo­da­mos ser­ve­riams paeiliui.

5 žingsnis: Per­krau­ki­te ir iš­ban­dy­ki­te HAProxy

Pakeitus kon­fi­gū­ra­ci­ją, norint, kad pa­kei­ti­mai įsi­ga­lio­tų, reikia iš naujo paleisti HAProxy. Tai atliekama įvedant šią komandą terminale:

sudo systemctl restart haproxy
bash

Jei atsiranda klaidų, galite pa­tik­rin­ti, ar HAProxy kon­fi­gū­ra­ci­jos faile nėra sintaksės klaidų, naudodami žemiau pateiktą komandą:

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

Teisingą kon­fi­gū­ra­ci­ją pa­tvir­ti­na išvesties eilutė Configuration file is valid. Dabar galite pa­tik­rin­ti, ar „HAProxy“ veikia kaip tikėtasi, nar­šyk­lė­je įvedę savo serverio viešąjį IP adresą arba domeno vardą.

Go to Main Menu