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