Sådan konfigureres belastningsbalancer med høj tilgængelighed med HAProxy til styring af webservertrafik


HAProxy står for høj tilgængelighed proxy. Det er en gratis og open source-applikation skrevet i C-programmeringssprog. HAProxy-applikationen bruges som TCP/HTTP Load Balancer og til proxy-løsninger. Den mest almindelige anvendelse af HAProxy-applikationen er at distribuere arbejdsbyrden på tværs af flere servere, fx webserver, databaseserver osv., Hvilket forbedrer den generelle ydelse og pålidelighed i servermiljøet.

Den meget effektive og hurtige applikation bruges af mange af verdens velrenommerede organisation, som inkluderer, men ikke begrænset til - Twitter, Reddit, GitHub og Amazon. Den er tilgængelig til Linux, BSD, Solaris og AIX-platformen.

I denne vejledning vil vi diskutere processen med at oprette en belastningsbalancer med høj tilgængelighed ved hjælp af HAProxy til at kontrollere trafikken af HTTP-baserede applikationer (webservere) ved at adskille anmodninger på tværs af flere servere.

Til denne artikel bruger vi den seneste stabile udgivelse af HAProxy-version, dvs. 1.5.10 udgivet den 31. december 2014. Og vi bruger også CentOS 6.5 til denne opsætning, men nedenstående instruktioner fungerer også på CentOS/RHEL/Fedora- og Ubuntu/Debian-distributioner.

Her er vores load-balancer HAProxy-server med værtsnavn som websrv.tecmintlocal.com med IP-adresse 192.168.0.125.

Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com

De andre fire maskiner er i gang 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]

Trin 1: Installation af Apache på klientmaskiner

1. Først skal vi installere Apache i alle fire servere og dele et hvilket som helst sted, for at installere Apache i alle fire servere her skal vi bruge følgende kommando.

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

2. Efter installation af Apache-webserver på alle fire klientmaskiner kan du kontrollere enhver af serveren, om Apache kører ved at få adgang til den via IP-adresse i browseren.

http://192.168.0.121

Trin 2: Installation af HAProxy Server

3. I de fleste af nutidens moderne Linux-distributioner kan HAPRoxy let installeres fra standardbaselageret ved hjælp af standardpakkehåndterer yum eller apt-get.

For eksempel for at installere HAProxy på RHEL/CentOS/Fedora og Debian/Ubuntu versioner skal du køre følgende kommando. Her har jeg også inkluderet openssl-pakke, fordi vi skal konfigurere HAProxy med SSL og NON-SSL-support.

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

Bemærk: På Debian Whezzy 7.0 er vi nødt til at aktivere backports-arkivet ved at tilføje en ny fil backports.list under "/etc/apt/sources.list.d/" biblioteket med følgende indhold.

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

Dernæst opdater opdateringsdatabasen og installer HAProxy.

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

Trin 3: Konfigurer HAProxy-logfiler

4. Dernæst skal vi aktivere logfunktion i HAProxy til fremtidig fejlfinding. Åbn HAProxy-hovedkonfigurationsfilen '/etc/haproxy/haproxy.cfg' med dit valg af editor.

# vim /etc/haproxy/haproxy.cfg

Følg derefter de distrospecifikke instruktioner for at konfigurere logfunktion i HAProxy.

Under #Global-indstillinger skal du aktivere følgende linje.

log         127.0.0.1 local2

Under #Globalindstillinger skal du erstatte følgende linjer,

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

Med,

log         127.0.0.1 local2

5. Dernæst er vi nødt til at aktivere UDP syslog-modtagelse i '/etc/rsyslog.conf' konfigurationsfil for at adskille logfiler til HAProxy under /var/log -mappen. Åbn din 'rsyslog.conf' fil med dit valg af editor.

# vim /etc/rsyslog.conf

Uncommnet ModLoad og UDPServerRun, her lytter vores server til Port 514 for at indsamle logfilerne i syslog.

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Dernæst skal vi oprette en separat fil 'haproxy.conf' under '/etc/rsyslog.d/' bibliotek for at konfigurere separate logfiler.

# vim /etc/rsyslog.d/haproxy.conf

Føj følgende linje til den nyoprettede fil.

local2.*	/var/log/haproxy.log

Til sidst skal du genstarte rsyslog-tjenesten for at opdatere de nye ændringer.

# service rsyslog restart