Kako postaviti balanser opterećenja visoke dostupnosti s 'HAProxy' za kontrolu prometa web poslužitelja


HAProxy je kratica za High Availability proxy. To je besplatna aplikacija otvorenog koda napisana u C programskom jeziku. HAProxy aplikacija koristi se kao TCP/HTTP Load Balancer i za proxy rješenja. Najčešća upotreba HAProxy aplikacije je raspodjela radnog opterećenja na više poslužitelja, npr. web poslužitelj, poslužitelj baze podataka itd., čime se poboljšava ukupna izvedba i pouzdanost okruženja poslužitelja.

Vrlo učinkovitu i brzu aplikaciju koriste mnoge renomirane svjetske organizacije koje uključuju, ali nisu ograničene na - Twitter, Reddit, GitHub i Amazon. Dostupan je za Linux, BSD, Solaris i AIX platforme.

U ovom vodiču raspravljat ćemo o procesu postavljanja balansera opterećenja visoke dostupnosti pomoću HAProxy za kontrolu prometa aplikacija temeljenih na HTTP-u (web poslužitelja) odvajanjem zahtjeva na više poslužitelja.

Za ovaj članak koristimo najnovije stabilno izdanje HAProxy verzije, tj. 1.5.10 objavljeno 31. prosinca 2014. Također koristimo CentOS 6.5 za ovo postavke, ali dolje navedene upute također rade na distribucijama CentOS/RHEL/Fedora i Ubuntu/Debian.

Moje postavke okruženja

Ovdje naš HAProxy poslužitelj za balansiranje opterećenja ima naziv hosta websrv.tecmintlocal.com s IP adresom 192.168.0.125.

Postavljanje HAProxy poslužitelja
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Postavljanje web poslužitelja klijenta

Ostala četiri stroja su spremna i rade s web poslužiteljima kao što 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]

Korak 1: Instaliranje Apachea na klijentska računala

1. Prvo moramo instalirati Apache na sva četiri poslužitelja i dijeliti bilo koju stranicu, za instaliranje Apachea na sva četiri poslužitelja ovdje ćemo koristiti sljedeću naredbu.

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

2. Nakon instaliranja Apache web poslužitelja na sva četiri klijentska računala, možete provjeriti bilo koji poslužitelj radi li Apache tako da mu pristupite putem IP adrese u pregledniku.

http://192.168.0.121

Korak 2: Instalacija HAProxy poslužitelja

3. U većini današnjih modernih distribucija Linuxa, HAPRoxy se može jednostavno instalirati iz zadanog osnovnog repozitorija pomoću zadanog upravitelja paketa yum ili apt-get .

Na primjer, da biste instalirali HAProxy na RHEL/CentOS/Fedora i Debian/Ubuntu verzije, pokrenite sljedeću naredbu. Ovdje sam uključio i openssl paket, jer ćemo postaviti HAProxy sa SSL i NON-SSL podrškom.

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

Napomena: Na Debian Whezzy 7.0, moramo omogućiti backports repozitorij dodavanjem nove datoteke backports.list >u direktoriju “/etc/apt/sources.list.d/” sa sljedećim sadržajem.

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

Zatim ažurirajte bazu podataka repozitorija i instalirajte HAProxy.

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

Korak 3: Konfigurirajte HAProxy zapisnike

4. Zatim moramo omogućiti značajku zapisivanja u HAProxy za buduće otklanjanje pogrešaka. Otvorite glavnu HAProxy konfiguracijsku datoteku '/etc/haproxy/haproxy.cfg' pomoću uređivača po izboru.

vim /etc/haproxy/haproxy.cfg

Zatim slijedite upute specifične za distribuciju da biste konfigurirali značajku zapisivanja u HAProxy.

Na RHEL/CentOS/Fedora

Pod #Globalne postavke omogućite sljedeći redak.

log         127.0.0.1 local2
Na Ubuntu/Debianu

Pod #Globalne postavke, zamijenite sljedeće retke,

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

S,

log         127.0.0.1 local2

5. Zatim moramo omogućiti prijem UDP syslog-a u '/etc/rsyslog.conf' konfiguracijskoj datoteci za odvajanje datoteka dnevnika za HAProxy pod /var/log imenik. Otvorite svoju datoteku ‘rsyslog.conf’ pomoću uređivača po izboru.

vim /etc/rsyslog.conf

Uncommnet ModLoad i UDPServerRun, ovdje će naš poslužitelj slušati Port 514 za prikupljanje zapisa u syslog.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Zatim moramo stvoriti zasebnu datoteku 'haproxy.conf' u direktoriju '/etc/rsyslog.d/' za konfiguraciju zasebne datoteke dnevnika.

vim /etc/rsyslog.d/haproxy.conf

Dodajte sljedeći red novostvorenoj datoteci.

local2.*	/var/log/haproxy.log

Na kraju ponovno pokrenite uslugu rsyslog da ažurirate nove promjene.

service rsyslog restart