Slik konfigurerer du belastningsbalanser med høy tilgjengelighet med 'HAProxy' for å kontrollere nettservertrafikken


HAProxy står for High Availability proxy. Det er en gratis og åpen kildekode-applikasjon skrevet i C programmeringsspråk. HAProxy-applikasjonen brukes som TCP/HTTP Load Balancer og for proxy-løsninger. Den vanligste bruken av HAProxy-applikasjonen er å fordele arbeidsbelastningen på flere servere, f.eks. webserver, databaseserver osv., og dermed forbedre den generelle ytelsen og påliteligheten til servermiljøet.

Den svært effektive og raske applikasjonen brukes av mange av verdens anerkjente organisasjoner som inkluderer, men ikke begrenset til – Twitter, Reddit, GitHub og Amazon. Den er tilgjengelig for Linux, BSD, Solaris og AIX-plattformer.

I denne opplæringen vil vi diskutere prosessen med å sette opp en lastbalanser med høy tilgjengelighet ved å bruke HAProxy for å kontrollere trafikken til HTTP-baserte applikasjoner (webservere) ved å skille forespørsler på tvers av flere servere.

For denne artikkelen bruker vi den siste stabile versjonen av HAProxy-versjonen, dvs. 1.5.10 utgitt 31. desember 2014. Og vi bruker også CentOS 6.5 for dette oppsett, men instruksjonene nedenfor fungerer også på CentOS/RHEL/Fedora og Ubuntu/Debian-distribusjoner.

Mitt miljøoppsett

Her er vår lastbalanserende HAProxy-server som har vertsnavnet websrv.tecmintlocal.com med IP-adressen 192.168.0.125.

HAProxy-serveroppsett
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Oppsett av klientwebservere

De fire andre maskinene er oppe og går med webservere som 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]

Trinn 1: Installere Apache på klientmaskiner

1. Først må vi installere Apache på alle fire servere og dele en hvilken som helst side, for å installere Apache på alle fire servere her skal vi bruke følgende kommando.

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

2. Etter å ha installert Apache-nettserveren på alle fire klientmaskinene, kan du bekrefte hvem som helst på serveren om Apache kjører ved å få tilgang til den via IP-adressen i nettleseren.

http://192.168.0.121

Trinn 2: Installere HAProxy Server

3. I de fleste av dagens moderne Linux-distribusjoner kan HAPRoxy enkelt installeres fra standard basislager ved å bruke standard pakkebehandling yum eller apt-get >.

For eksempel, for å installere HAProxy på RHEL/CentOS/Fedora og Debian/Ubuntu-versjoner, kjør følgende kommando. Her har jeg inkludert openssl-pakken også, fordi vi skal sette opp HAProxy med SSL- og IKKE-SSL-støtte.

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

Merk: På Debian Whezzy 7.0 må vi aktivere backports-depotet ved å legge til en ny fil backports.list >under «/etc/apt/sources.list.d/»-katalogen med følgende innhold.

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

Deretter oppdaterer du depotdatabasen og installer HAProxy.

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

Trinn 3: Konfigurer HAProxy-logger

4. Deretter må vi aktivere loggingsfunksjonen i HAProxy for fremtidig feilsøking. Åpne hovedkonfigurasjonsfilen for HAProxy '/etc/haproxy/haproxy.cfg' med ditt valg av editor.

vim /etc/haproxy/haproxy.cfg

Deretter følger du de distrospesifikke instruksjonene for å konfigurere loggingsfunksjonen i HAProxy.

På RHEL/CentOS/Fedora

Aktiver følgende linje under #Globale innstillinger.

log         127.0.0.1 local2
På Ubuntu/Debian

Under #Globale innstillinger erstatter du følgende linjer,

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

Med,

log         127.0.0.1 local2

5. Deretter må vi aktivere UDP-syslogmottak i '/etc/rsyslog.conf' konfigurasjonsfilen for å skille loggfiler for HAProxy under /var/log katalog. Åpne «rsyslog.conf»-filen med ditt valg av redigeringsverktøy.

vim /etc/rsyslog.conf

Uncommnet ModLoad og UDPServerRun, Her vil serveren vår lytte til Port 514 for å samle loggene i syslog.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Deretter må vi opprette en egen fil «haproxy.conf» under «/etc/rsyslog.d/»-katalogen for å konfigurere separate loggfiler.

vim /etc/rsyslog.d/haproxy.conf

Legg til følgende linje i den nylig opprettede filen.

local2.*	/var/log/haproxy.log

Til slutt, start rsyslog-tjenesten på nytt for å oppdatere de nye endringene.

service rsyslog restart