Kako nastaviti Balancer obremenitve z visoko razpoložljivostjo s HAProxy za nadzor prometa na spletnem strežniku


HAProxy pomeni proxy visoke razpoložljivosti. Je brezplačna in odprtokodna aplikacija, napisana v programskem jeziku C. Aplikacija HAProxy se uporablja kot izravnalnik obremenitve TCP/HTTP in za proxy rešitve. Najpogostejša uporaba aplikacije HAProxy je porazdelitev delovne obremenitve med več strežniki, npr. Spletni strežnik, strežnik baz podatkov itd., S čimer se izboljša splošna zmogljivost in zanesljivost strežniškega okolja.

Zelo učinkovito in hitro aplikacijo uporabljajo številne ugledne organizacije na svetu, ki med drugim vključujejo Twitter, Reddit, GitHub in Amazon. Na voljo je za platforme Linux, BSD, Solaris in AIX.

V tej vadnici bomo razpravljali o postopku nastavitve izravnalnika obremenitve z visoko razpoložljivostjo s pomočjo HAProxy za nadzor prometa aplikacij (spletnih strežnikov), ki temeljijo na HTTP, z ločevanjem zahtev med več strežniki.

V tem članku uporabljamo najnovejšo stabilno različico različice HAProxy, tj. 1.5.10, izdano 31. decembra 2014. Za to nastavitev uporabljamo tudi CentOS 6.5, vendar spodnja navodila delujejo tudi na CentOS/RHEL/Distribucije Fedora in Ubuntu/Debian.

Tukaj je naš strežnik HAProxy za uravnoteženje obremenitve z imenom gostitelja websrv.tecmintlocal.com z naslovom IP 192.168.0.125.

Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com

Preostali štirje stroji delujejo s spletnimi strežniki, kot je Apache.

Web Server #1 :	CentOS 6.5 [IP: 192.168.0.121] - [hostname: web1srv.tecmintlocal.com]
Web Server #2 :	CentOS 6.5 [IP: 192.168.0.122] - [hostname: web2srv.tecmintlocal.com]
Web Server #3 :	CentOS 6.5 [IP: 192.168.0.123] - [hostname: web3srv.tecmintlocal.com]
Web Server #4 :	CentOS 6.5 [IP: 192.168.0.124] - [hostname: web4srv.tecmintlocal.com]

1. korak: Namestitev Apacheja na odjemalske stroje

1. Najprej moramo namestiti Apache v vse štiri strežnike in si deliti katero koli spletno stran, za namestitev Apacheja v vse štiri strežnike bomo uporabili naslednji ukaz.

# yum install httpd		[On RedHat based Systems]
# apt-get install apache2	[On Debian based Systems]

2. Po namestitvi spletnega strežnika Apache na vse štiri odjemalske računalnike lahko s strežnikom preverite, ali se Apache izvaja, tako da dostopate do njega prek naslova IP v brskalniku.

http://192.168.0.121

2. korak: Namestitev strežnika HAProxy

3. V večini današnjih sodobnih distribucij Linuxa je mogoče HAPRoxy enostavno namestiti iz privzetega osnovnega repozitorija z uporabo privzetega upravitelja paketov yum ali apt-get.

Če želite na primer namestiti HAProxy v različicah RHEL/CentOS/Fedora in Debian/Ubuntu, zaženite naslednji ukaz. Sem sem vključil tudi paket openssl, ker bomo nastavili HAProxy s podporo za SSL in NON-SSL.

# yum install haproxy openssl-devel	[On RedHat based Systems]
# apt-get install haproxy		[On Debian based Systems]

Opomba: V Debianu Whezzy 7.0 moramo omogočiti repozitorij backports tako, da v mapo »/etc/apt/sources.list.d/« z novo vsebino dodamo novo datoteko backports.list.

# echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list

Nato posodobite bazo podatkov repozitorija in namestite HAProxy.

# apt-get update
# apt-get install haproxy -t wheezy-backports

3. korak: Konfigurirajte dnevnike HAProxy

4. Nato moramo omogočiti funkcijo beleženja v programu HAProxy za prihodnje odpravljanje napak. Odprite glavno konfiguracijsko datoteko HAProxy ‘/etc/haproxy/haproxy.cfg‘ z izbiro urejevalnika.

# vim /etc/haproxy/haproxy.cfg

Nato sledite navodilom za distro, da konfigurirate funkcijo beleženja v HAProxy.

V razdelku # Globalne nastavitve omogočite naslednjo vrstico.

log         127.0.0.1 local2

V razdelku # Globalne nastavitve zamenjajte naslednje vrstice,

log /dev/log        local0
log /dev/log        local1 notice 

S,

log         127.0.0.1 local2

5. Nato moramo omogočiti sprejem UDP syslog v konfiguracijski datoteki ‘/etc/rsyslog.conf‘, da ločimo dnevniške datoteke za HAProxy pod imenikom /var/log . Datoteko 'rsyslog.conf' odprite z izbiro urejevalnika.

# vim /etc/rsyslog.conf

Uncommnet ModLoad in UDPServerRun, tukaj bo naš strežnik poslušal vrata 514, da bo zbiral dnevnike v syslog.

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Nato moramo v imeniku//etc/rsyslog.d/ ustvariti ločeno datoteko "haproxy.conf" za konfiguracijo ločenih datotek dnevnika.

# vim /etc/rsyslog.d/haproxy.conf

Novo ustvarjeni datoteki dodajte naslednjo vrstico.

local2.*	/var/log/haproxy.log

Na koncu ponovno zaženite storitev rsyslog, da posodobite nove spremembe.

# service rsyslog restart