Zoeken op website

Hoe u een High-Availability Load Balancer instelt met 'HAProxy' om het webserververkeer te controleren


HAProxy staat voor High Availability-proxy. Het is een gratis en open source-applicatie geschreven in de programmeertaal C. De HAProxy-applicatie wordt gebruikt als TCP/HTTP Load Balancer en voor proxy-oplossingen. Het meest voorkomende gebruik van de HAProxy-applicatie is het verdelen van de werklast over meerdere servers, bijvoorbeeld een webserver, databaseserver, enz., waardoor de algehele prestaties en betrouwbaarheid van de serveromgeving worden verbeterd.

De zeer efficiënte en snelle applicatie wordt gebruikt door veel van 's werelds gereputeerde organisaties, waaronder maar niet beperkt tot: Twitter, Reddit, GitHub en Amazon. Het is beschikbaar voor het Linux-, BSD-, Solaris- en AIX-platform.

In deze zelfstudie bespreken we het proces van het opzetten van een load balancer met hoge beschikbaarheid met behulp van HAProxy om het verkeer van op HTTP gebaseerde applicaties (webservers) te controleren door verzoeken over meerdere servers te scheiden.

Voor dit artikel gebruiken we de meest recente stabiele release van de HAProxy-versie, d.w.z. 1.5.10 uitgebracht op 31 december 2014. En we gebruiken hiervoor ook CentOS 6.5 setup, maar de onderstaande instructies werken ook op CentOS/RHEL/Fedora en Ubuntu/Debian distributies.

Mijn omgevingsinstellingen

Hier is onze load-balancer HAProxy-server met de hostnaam websrv.tecmintlocal.com met IP-adres 192.168.0.125.

HAProxy-server instellen
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Clientwebservers instellen

De andere vier machines draaien met webservers zoals 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]

Stap 1: Apache installeren op clientmachines

1. Eerst moeten we Apache op alle vier de servers installeren en een site delen. Voor het installeren van Apache op alle vier de servers hier gaan we de volgende opdracht gebruiken.

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

2. Nadat u de Apache-webserver op alle vier de clientcomputers hebt geïnstalleerd, kunt u bij iedereen op de server verifiëren of Apache actief is door er toegang toe te krijgen via het IP-adres in de browser.

http://192.168.0.121

Stap 2: HAProxy-server installeren

3. In de meeste hedendaagse moderne Linux-distributies kan HAPRoxy eenvoudig worden geïnstalleerd vanuit de standaardbasisrepository met behulp van de standaardpakketbeheerder yum of apt-get >.

Als u bijvoorbeeld HAProxy op RHEL/CentOS/Fedora- en Debian/Ubuntu-versies wilt installeren, voert u de volgende opdracht uit. Hier heb ik ook het openssl pakket toegevoegd, omdat we HAProxy gaan instellen met SSL- en NON-SSL-ondersteuning.

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

Opmerking: op Debian Whezzy 7.0 moeten we de backports-repository inschakelen door een nieuw bestand backports.list toe te voegen >onder de map “/etc/apt/sources.list.d/” met de volgende inhoud.

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

Werk vervolgens de repositorydatabase bij en installeer HAProxy.

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

Stap 3: Configureer HAProxy-logboeken

4. Vervolgens moeten we de logfunctie in HAProxy inschakelen voor toekomstige foutopsporing. Open het hoofdHAProxy-configuratiebestand ‘/etc/haproxy/haproxy.cfg’ met de editor van uw keuze.

vim /etc/haproxy/haproxy.cfg

Volg vervolgens de distro-specifieke instructies om de logfunctie in HAProxy te configureren.

Op RHEL/CentOS/Fedora

Schakel onder #Global settings de volgende regel in.

log         127.0.0.1 local2
Op Ubuntu/Debian

Vervang onder #Global settings de volgende regels,

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

Met,

log         127.0.0.1 local2

5. Vervolgens moeten we UDP-syslog-ontvangst inschakelen in het configuratiebestand '/etc/rsyslog.conf' om logbestanden voor HAProxy te scheiden onder /var/log map. Open uw ‘rsyslog.conf’-bestand met de editor van uw keuze.

vim /etc/rsyslog.conf

Uncommnet ModLoad en UDPServerRun, hier luistert onze server naar Poort 514 om de logbestanden in de syslog te verzamelen.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Vervolgens moeten we een apart bestand 'haproxy.conf' maken in de map '/etc/rsyslog.d/' om te configureren aparte logbestanden.

vim /etc/rsyslog.d/haproxy.conf

Voeg de volgende regel toe aan het nieuw gemaakte bestand.

local2.*	/var/log/haproxy.log

Start ten slotte de rsyslog-service opnieuw op om de nieuwe wijzigingen bij te werken.

service rsyslog restart