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