Kaip nustatyti didelio prieinamumo apkrovos balansavimo priemonę naudojant „HAProxy“, kad būtų galima valdyti tinklo serverio srautą


HAProxy reiškia didelio prieinamumo tarpinį serverį. Tai nemokama atvirojo kodo programa, parašyta C programavimo kalba. HAProxy programa naudojama kaip TCP/HTTP apkrovos balansavimo priemonė ir tarpinio serverio sprendimai. Dažniausiai HAProxy programa naudojama paskirstyti darbo krūvį keliuose serveriuose, pvz., žiniatinklio serveryje, duomenų bazės serveryje ir tt, taip pagerinant bendrą serverio aplinkos našumą ir patikimumą.

Labai efektyvią ir greitą programą naudoja daugelis pasaulyje žinomų organizacijų, įskaitant „Twitter“, „Reddit“, „GitHub“ ir „Amazon“, bet tuo neapsiribojant. Galima naudoti Linux, BSD, Solaris ir AIX platformoms.

Šioje mokymo programoje aptarsime didelio pasiekiamumo apkrovos balansavimo priemonės nustatymo procesą naudojant HAProxy, kad būtų galima valdyti HTTP pagrindu veikiančių programų (žiniatinklio serverių) srautą, atskiriant užklausas keliuose serveriuose.

Šiam straipsniui naudojame naujausią stabilią HAProxy versiją, t. y. 1.5.10, išleistą 2014 m. gruodžio 31 d. Be to, šiuo tikslu naudojame CentOS 6.5 sąranką, tačiau toliau pateiktos instrukcijos taip pat veikia CentOS/RHEL/Fedora ir Ubuntu/Debian platinimuose.

Mano aplinkos sąranka

Čia yra mūsų apkrovos balansavimo HAProxy serveris, kurio pagrindinio kompiuterio pavadinimas yra websrv.tecmintlocal.com su IP adresu 192.168.0.125.

HAProxy serverio sąranka
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Kliento žiniatinklio serverių sąranka

Kiti keturi įrenginiai yra sukurti ir veikia su žiniatinklio serveriais, tokiais kaip „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 veiksmas: „Apache“ diegimas klientų įrenginiuose

1. Pirmiausia turime įdiegti „Apache“ visuose keturiuose serveriuose ir bendrinti bet kurią svetainę. Norėdami įdiegti „Apache“ visuose keturiuose serveriuose, čia naudosime šią komandą.

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

2. Įdiegę „Apache“ žiniatinklio serverį visuose keturiuose kliento įrenginiuose, galite patikrinti bet kurį iš serverio, ar veikia „Apache“, pasiekdami jį naudodami IP adresą naršyklėje.

http://192.168.0.121

2 veiksmas: HAProxy serverio įdiegimas

3. Daugumoje šiuolaikinių Linux platinimų HAPRoxy galima lengvai įdiegti iš numatytosios bazinės saugyklos naudojant numatytąją paketų tvarkyklę yum arba apt-get >.

Pavyzdžiui, norėdami įdiegti HAProxy RHEL/CentOS/Fedora ir Debian/Ubuntu versijose, paleiskite šią komandą. Čia taip pat įtraukiau openssl paketą, nes ketiname nustatyti HAProxy su SSL ir NON-SSL palaikymu.

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

Pastaba: Debian Whezzy 7.0 turime įgalinti backports saugyklą pridėdami naują failą backports.list >apie „/etc/apt/sources.list.d/“ katalogą su tokiu turiniu.

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

Tada atnaujinkite saugyklos duomenų bazę ir įdiekite HAProxy.

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

3 veiksmas: sukonfigūruokite HAProxy žurnalus

4. Tada turime įjungti registravimo funkciją HAProxy, kad galėtume derinti ateityje. Atidarykite pagrindinį HAProxy konfigūracijos failą „/etc/haproxy/haproxy.cfg“ naudodami pasirinktą redaktorių.

vim /etc/haproxy/haproxy.cfg

Tada vadovaukitės platinimo instrukcijomis, kad sukonfigūruotumėte registravimo funkciją HAProxy.

RHEL/CentOS/Fedora

Dalyje #Visuotiniai nustatymai įgalinkite šią eilutę.

log         127.0.0.1 local2
Ubuntu/Debian

Dalyje #Visuotiniai nustatymai pakeiskite šias eilutes,

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

Su,

log         127.0.0.1 local2

5. Tada turime įgalinti UDP sistemos žurnalo priėmimą /etc/rsyslog.conf konfigūracijos faile, kad atskirtume HAProxy žurnalo failus /var/log katalogą. Atidarykite failą rsyslog.conf naudodami pasirinktą redaktorių.

vim /etc/rsyslog.conf

Atjunkite ModLoad ir UDPServerRun, čia mūsų serveris klausys Port 514, kad surinktų žurnalus į syslog.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Tada turime sukurti atskirą failą haproxy.conf, esantį kataloge /etc/rsyslog.d/, kad sukonfigūruotume atskirus žurnalo failus.

vim /etc/rsyslog.d/haproxy.conf

Pridėkite šią eilutę prie naujai sukurto failo.

local2.*	/var/log/haproxy.log

Galiausiai iš naujo paleiskite rsyslog paslaugą, kad atnaujintumėte naujus pakeitimus.

service rsyslog restart