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