Kako postaviti balanser opterećenja visoke dostupnosti sa 'HAProxy' za kontrolu prometa web servera


HAProxy je skraćenica za High Availability proxy. To je besplatna aplikacija otvorenog koda napisana u programskom jeziku C. HAProxy aplikacija se koristi kao TCP/HTTP Load Balancer i za proxy rješenja. Najčešća upotreba HAProxy aplikacije je za distribuciju radnog opterećenja na više servera, npr. web server, server baze podataka, itd. čime se poboljšavaju ukupne performanse i pouzdanost serverskog okruženja.

Visoko efikasnu i brzu aplikaciju koriste mnoge renomirane organizacije u svijetu koje uključuju, ali ne ograničavajući se na – Twitter, Reddit, GitHub i Amazon. Dostupan je za Linux, BSD, Solaris i AIX platformu.

U ovom vodiču ćemo razgovarati o procesu postavljanja balansera opterećenja visoke dostupnosti koristeći HAProxy za kontrolu prometa aplikacija baziranih na HTTP-u (web servera) odvajanjem zahtjeva na više servera.

Za ovaj članak koristimo najnoviju stabilnu verziju HAProxy verzije, tj. 1.5.10 objavljenu 31. decembra 2014. I također koristimo CentOS 6.5 za ovo postavljanje, ali dolje navedene upute također rade na CentOS/RHEL/Fedora i Ubuntu/Debian distribucijama.

My Environment Setup

Ovdje naš HAProxy server za balansiranje opterećenja ima ime hosta kao websrv.tecmintlocal.com sa IP adresom 192.168.0.125.

Podešavanje HAProxy servera
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Podešavanje klijentskih web servera

Ostale četiri mašine rade i rade sa web serverima 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 Apache-a na klijentske mašine

1. Prvo moramo instalirati Apache na sva četiri servera i dijeliti bilo koju od web lokacija, za instaliranje Apachea na sva četiri servera 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 servera na sve četiri klijentske mašine, možete provjeriti bilo koga na serveru da li Apache radi tako što ćete mu pristupiti preko IP adrese u pretraživaču.

http://192.168.0.121

Korak 2: Instaliranje HAProxy servera

3. U većini današnjih modernih Linux distribucija, HAPRoxy se može lako instalirati iz zadanog baznog spremišta koristeći zadani upravitelj 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 podrškom za SSL i NON-SSL.

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 spremište 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 spremišta i instalirajte HAProxy.

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

Korak 3: Konfigurirajte HAProxy dnevnike

4. Zatim moramo omogućiti funkciju evidentiranja u HAProxy za buduće otklanjanje grešaka. Otvorite glavnu HAProxy konfiguracijsku datoteku '/etc/haproxy/haproxy.cfg' po svom izboru.

vim /etc/haproxy/haproxy.cfg

Zatim slijedite upute specifične za distro kako biste konfigurirali značajku evidentiranja u HAProxy.

Na RHEL/CentOS/Fedora

Pod #Global settings, omogućite sljedeći red.

log         127.0.0.1 local2
Na Ubuntu/Debianu

Pod #Global settings, zamijenite sljedeće redove,

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

sa,

log         127.0.0.1 local2

5. Zatim moramo omogućiti prijem UDP syslog u '/etc/rsyslog.conf' konfiguracijskoj datoteci da odvojimo datoteke dnevnika za HAProxy pod /var/log direktorij. Otvorite svoju datoteku „rsyslog.conf“ pomoću uređivača po vašem izboru.

vim /etc/rsyslog.conf

Uncommnet ModLoad i UDPServerRun, ovdje će naš server slušati Port 514 kako bi prikupio logove u syslog.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Zatim moramo kreirati zasebnu datoteku 'haproxy.conf' u direktoriju '/etc/rsyslog.d/' za konfiguraciju zasebne log fajlove.

vim /etc/rsyslog.d/haproxy.conf

Dodajte sljedeći red novo kreiranoj datoteci.

local2.*	/var/log/haproxy.log

Konačno, ponovo pokrenite rsyslog uslugu da ažurirate nove promjene.

service rsyslog restart