Kuidas seadistada HAProxy abil kõrge kättesaadavusega koormuse tasakaalustajat veebiserveri liikluse juhtimiseks


HAProxy tähistab kõrge kättesaadavusega puhverserverit. See on tasuta ja avatud lähtekoodiga rakendus, mis on kirjutatud C-programmeerimiskeeles. HAProxy rakendust kasutatakse TCP/HTTP koormuse tasakaalustajana ja puhverserveri lahenduste jaoks. HAProxy rakenduse kõige tavalisem kasutusala on töökoormuse jaotamine mitme serveri vahel, nt veebiserver, andmebaasiserver jne, parandades nii serverikeskkonna üldist jõudlust ja töökindlust.

Ülitõhusat ja kiiret rakendust kasutavad paljud maailma mainekad organisatsioonid, sealhulgas Twitter, Reddit, GitHub ja Amazon, kuid mitte ainult. See on saadaval Linuxi, BSD, Solarise ja AIX platvormi jaoks.

Selles õpetuses käsitleme HAProxy abil kõrge kättesaadavusega koormuse tasakaalustaja seadistamise protsessi HTTP-põhiste rakenduste (veebiserverite) liikluse juhtimiseks, eraldades taotlused mitme serveri vahel.

Selle artikli jaoks kasutame HAProxy versiooni uusimat stabiilset versiooni, st 1.5.10, mis ilmus 31. detsembril 2014. Ja selle seadistuse jaoks kasutame ka CentOS 6.5, kuid allpool toodud juhised töötavad ka saidil CentOS/RHEL/Fedora ja Ubuntu/Debiani distributsioonid.

Siin on meie koormuse tasakaalustaja HAProxy server, mille hostinimi on websrv.tecmintlocal.com ja mille IP-aadress on 192.168.0.125.

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

Ülejäänud neli masinat töötavad koos veebiserveritega, näiteks 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. samm: installige Apache klientide masinatesse

1. Kõigepealt peame installima Apache kõigisse nelja serverisse ja jagama mõnda saiti. Apache'i installimiseks kõigis neljas serveris kasutame järgmist käsku.

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

2. Pärast Apache veebiserveri installimist kõigile neljale kliendimasinale saate brauseris IP-aadressi kaudu juurdepääsemise abil kontrollida, kas keegi serverist töötab Apache.

http://192.168.0.121

2. samm: HAProxy Serveri installimine

3. Enamikus tänapäevastest Linuxi distributsioonidest saab HAPRoxy vaikebaasi hoidlast hõlpsasti installida, kasutades vaikepaketi haldurit yum või apt-get.

Näiteks HAProxy installimiseks RHEL/CentOS/Fedora ja Debiani/Ubuntu versioonidesse käivitage järgmine käsk. Siia lisasin ka openssl-i paketi, kuna seadistame HAProxy SSL-i ja NON-SSL-toega.

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

Märkus: Debian Whezzy 7.0-s peame lubama backportide hoidla, lisades järgmise sisuga kataloogi “/etc/apt/sources.list.d/” uue faili backports.list.

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

Järgmisena värskendage hoidla andmebaasi ja installige HAProxy.

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

3. samm: konfigureerige HAProxy logid

4. Järgmisena peame lubama HAProxy'is logimise funktsiooni edaspidiseks silumiseks. Avage peamise HAProxy konfiguratsioonifail '/etc/haproxy/haproxy.cfg' teie valitud redigeerija abil.

# vim /etc/haproxy/haproxy.cfg

Järgige HAProxy logimisfunktsiooni konfigureerimiseks distrospetsiifilisi juhiseid.

Lubage jaotises #Globali seaded järgmine rida.

log         127.0.0.1 local2

Asendage jaotises #Globali seaded järgmised read:

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

Koos

log         127.0.0.1 local2

5. Järgmisena peame lubama konfiguratsioonifailis '/etc/rsyslog.conf' UDP syslogi vastuvõtu, et eraldada HAProxy logifailid kataloogi /var/log alt. Avage oma redaktoriga valitud fail ‘rsyslog.conf’.

# vim /etc/rsyslog.conf

Uncommnet ModLoad ja UDPServerRun, siin kuulab meie server porti 514, et logisid syslogisse koguda.

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Järgmisena peame eraldi logifailide konfigureerimiseks looma kataloogi /etc/rsyslog.d/ ‘alla eraldi faili‘ haproxy.conf ’.

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

Lisage värskelt loodud failile järgmine rida.

local2.*	/var/log/haproxy.log

Lõpuks taaskäivitage rsyslogi teenus uute muudatuste värskendamiseks.

# service rsyslog restart