HAProxy on tehokas avoimen läh­de­koo­din oh­jel­mis­to, joka mah­dol­lis­taa kuor­mi­tuk­sen ta­sa­pai­not­ta­mi­sen ja vä­li­tys­pal­ve­li­men mää­rit­tä­mi­sen TCP- ja HTTP-poh­jai­sil­le so­vel­luk­sil­le. Se voidaan asentaa Debian 12:een muu­ta­mal­la yk­sin­ker­tai­sel­la vaiheella, ja sitä käytetään usein korkean käy­tet­tä­vyy­den jär­jes­tel­mis­sä pyyntöjen te­hok­kaa­seen ja­ka­mi­seen, mikä parantaa so­vel­lus­ten vakautta ja suo­ri­tus­ky­kyä.

Mikä on HAProxy?

HAProxy (High Avai­la­bi­li­ty Proxy) on suo­ri­tus­ky­kyi­nen ja luo­tet­ta­va kuor­mi­tuk­sen ta­sa­pai­not­ta­ja ja kään­tei­nen vä­li­tys­pal­ve­lin, jota käytetään verkko- ja so­vel­lus­tie­don jakeluun. Sovellus tukee kuor­mi­tuk­sen ta­sa­pai­not­ta­mi­ses­sa sekä OSI-mallin tasoa 4 (siir­to­ker­ros, esim. TCP) että tasoa 7 (so­vel­lus­ker­ros, esim. HTTP). Pienen viiveen, korkean te­hok­kuu­den ja kattavien kon­fi­gu­roin­ti­vaih­toeh­to­jen ansiosta HAProxy sopii kaiken ko­koi­sil­le yri­tyk­sil­le.

Yritykset ja ke­hit­tä­jät käyttävät HAProxya kuor­mi­tuk­sen ja­ka­mi­seen useiden taus­ta­pal­ve­li­mien kesken, pal­ve­lin­kat­kos­ten tor­ju­mi­seen ja so­vel­lus­ten yleisen suo­ri­tus­ky­vyn pa­ran­ta­mi­seen. Oh­jel­mis­tol­la on keskeinen rooli monissa verk­ko­ym­pä­ris­töis­sä, etenkin korkean käy­tet­tä­vyy­den ja skaa­lau­tu­vuu­den vaa­ti­vis­sa so­vel­luk­sis­sa. Sen tär­keim­piä omi­nai­suuk­sia ovat SSL/TLS-yh­teyk­sien päät­tä­mi­nen, taus­ta­pal­ve­li­mien toi­min­ta­tar­kis­tuk­set, kais­tan­le­vey­den ra­joit­ta­mi­nen sekä DDoS-hyök­käys­ten tor­jun­ta­me­ka­nis­mit.

HAProxyn asennus Debianiin vaihe vaiheelta

Vaihe 1: Päivitä jär­jes­tel­mä

Ennen HAProxyn asen­ta­mis­ta sinun tulisi päivittää Linux-jakelusi. Näin varmistat, että kaikki paketit ovat ajan tasalla ja että asennus sujuu on­gel­mit­ta.

Seuraava komento päivittää pa­ket­ti­luet­te­lot ja asentaa kaikki saa­ta­vil­la olevat päi­vi­tyk­set Debian 12:lle:

sudo apt update && sudo apt upgrade -y
bash

Vaihe 2: Asenna HAProxy

Debian 12:ssa HAProxy sisältyy vi­ral­li­siin pa­ket­ti­läh­tei­siin, joten sen asen­ta­mi­nen on helppoa si­sään­ra­ken­ne­tul­la apt-pa­ket­ti­hal­lin­taoh­jel­mal­la.

sudo apt install haproxy -y
bash

Tämä komento lataa ja asentaa HAProxyn sekä kaikki tar­vit­ta­vat riip­pu­vuu­det.

Vaihe 3: Tarkista HAProxy-versio

Asen­nuk­sen jälkeen sinun tulisi tarkistaa, onko HAProxy asennettu on­nis­tu­nees­ti. Voit tehdä tämän tar­kis­ta­mal­la asennetun HAProxy-version:

haproxy -v
bash

Tuloksen pitäisi näyttää suun­nil­leen tältä:

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

Tämä varmistaa, että HAProxy on asennettu oikein.

Vaihe 4: Ota HAProxy käyttöön palveluna

Jotta HAProxy käyn­nis­tyi­si au­to­maat­ti­ses­ti jär­jes­tel­män käyn­nis­tyes­sä ja toimisi jat­ku­vas­ti, palvelu on otettava käyttöön ja käyn­nis­tet­tä­vä.

sudo systemctl enable haproxy
sudo systemctl start haproxy
bash

Lopuksi palvelun toi­mi­vuu­den tar­kis­ta­mi­seen voidaan käyttää seuraavaa komentoa:

sudo systemctl status haproxy
bash

Jos HAProxy toimii oikein, näytöllä pitäisi näkyä ak­tii­vi­nen (käynnissä oleva) tuloste, joka näyttää suun­nil­leen tältä:

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

Vaihe 5: HAProxyn pe­rus­a­se­tuk­set

HAProxy-mää­ri­tys­tie­dos­to sijaitsee kansiossa /etc/haproxy/haproxy.cfg. Ennen muutosten tekemistä on suo­si­tel­ta­vaa luoda var­muus­ko­pio, johon voi turvautua vir­he­ti­lan­teis­sa:

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

Nyt voit muokata tiedostoa ha­lua­mal­la­si teks­tie­di­to­ril­la (kuten Vim tai nano):

sudo nano /etc/haproxy/haproxy.cfg
bash

Yk­sin­ker­tai­nen HAProxy-määritys voisi näyttää tältä:

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

Tämä ko­koon­pa­no jakaa HTTP-pyynnöt kahden verk­ko­pal­ve­li­men kesken round-robin-pe­ri­aat­teel­la. Se on jaettu useisiin osioihin. En­sin­nä­kin on globaali osio, jossa mää­ri­tel­lään HAProxyn pe­rus­a­se­tuk­set. Tässä osiossa mää­ri­te­tään esi­mer­kik­si käyt­tä­jä­ti­li, jolla HAProxy toimii, sal­lit­tu­jen sa­ma­nai­kais­ten yh­teyk­sien määrä sekä lo­ki­tie­dos­to­jen tal­len­nus­paik­ka. Lisäksi voidaan mää­ri­tel­lä chroot-hakemisto, jotta HAProxy voidaan ajaa ra­joi­te­tus­sa ym­pä­ris­tös­sä ja parantaa siten tie­to­tur­vaa.

Yleisten asetusten jälkeen tulee defaults, jossa mää­ri­tel­lään ole­tusar­vot kaikille seu­raa­vil­le mää­ri­tyk­sil­le. Tässä osiossa mää­ri­te­tään esi­mer­kik­si, että HAProxy toimii HTTP-tilassa ja että HTTP-lokitus on käytössä. Lisäksi mää­ri­tel­lään erilaisia ai­ka­kat­kai­su­ja.

Mää­ri­tys­tie­dos­ton muut osat, kuten osat frontend ja backend, ohjaavat var­si­nais­ta da­ta­lii­ken­net­tä. Frontend-osassa mää­ri­te­tään, millä porteilla HAProxy vas­taa­not­taa pyyntöjä ja miten ne vä­li­te­tään eteenpäin. Backend-osassa puo­les­taan mää­ri­te­tään pal­ve­li­met, joille liikenne vä­li­te­tään. Tässä voidaan käyttää kuor­mi­tuk­sen ta­sa­pai­not­ta­mi­sal­go­rit­me­ja.

Kun olet tehnyt muutokset, tallenna tiedosto ja käynnistä HAProxy uudelleen:

sudo systemctl restart haproxy
bash

HAProxyn asennus Debian 12:een on nyt valmis. Asetuksia voi muokata milloin tahansa muut­ta­mal­la ase­tus­tie­dos­toa.

Siirry pää­va­lik­koon