L4L.be

...because open source matters

  • Increase font size
  • Default font size
  • Decrease font size
Home Linux Documentatie Server toepassingen Loadbalancing met HA Proxy

Loadbalancing met HA Proxy

E-mail Print PDF

Als je meerdere webservers bezit kun je er voor kiezen de load (het aantal requests) te verdelen (balancing). Dit kun je doen met HA Proxy. HA is een betrouwbare, High Available, zeer snelle http loadbalancer.

Deze handleiding is gebaseerd op de distributie CentOS versie 5. De situatie die hier wordt beschreven bestaat uit 2 webservers en 1 loadbalancer machine.In deze howto gaan we niet in op de setup van Apache zelf, in ieder geval moet je bekend zijn met de setup van Apache en Virtualhosting (zie elders op deze website). Verder moet er voor gezorgd worden dat de 2 Apache configuraties identiek zijn, behalve uiteraard de ip adressen.

Installatie

De machine waar de loadbalance software op geinstalleerd kan worden, moet niet echt heel speciaal zijn, wel liefst zo kaal mogelijk (security + zo te minder resources, zo te sneller). Omdat er op de machine gebruik wordt gemaakt van CentOS kan er gebruik worden gemaakt van een kant-en-klare RPM. Je kunt deze eenvoudig installeren met:

$ su -c "rpm -ivh ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/5/i386/haproxy-1.3.12.2-3.el5.i386.rpm"

Configuratie

De configuratie vind vervolgens plaats door het bewerken, met je avoriete tekst-editor als root, van het bestand /etc/haproxy/haproxy.cfg. In dit bestand komt te staan wat er allemaal gedaan moet worden. We gaan in deze howto niet al te veel in op details en houden de configuratie zo standaard mogelijk. 


global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000

Dan volgt in dit configuratie bestand het gedeelte over de loadbalancing zelf: het toevoegen van de webservers en de configuratie van de loadbalancing. In deze configuratie gaan we uit van de roundrobin methode (bepaald algoritme/volgorde wat ook bijvoorbeeld bij loadbalancing van dns servers veel gebruikt wordt).

listen webservers 0.0.0.0:80
option httpchk HEAD /check.txt HTTP/1.0
balance roundrobin
stats enable
stats uri /LoadBalancer
option httpclose
option forwardfor
cookie SERVERID insert indirect nocache
server web1 192.168.1.91 port 80 check inter 6000 rise 2 fall 5 weight 100
server web2 192.168.1.92 port 80 check inter 6000 rise 2 fall 5 weight 100

We zien bij option httpchk staan dat er /check.txt bij staat. Doe op allebei de webservers (web1 en web2, met bijbehorend ip adres) in de document root het volgende commdo uitvoeren:

$ touch check.txt

Als dit bestand bestaat dan weet HA Proxy dat de machine in de roundrobin moet zitten. Verder is op http://IP/LoadBalancer een pagina met statistieken te vinden. Neem de volgende 2 opties maar voor zoals het staat en de cookie regel ook. Wil je hier meer van weten wilt, lees dan de manpage (of op google kijken). Laatste zijn de 2 webservers, waarbij het controle interval hier op 6000ms (6 sec.) staat, wil je dit vaker dan kan je deze waarde verkleinen, moet het meer zijn vergroot je de waarde. De rise waarde is het aantal checks dat positief moet zijn om weer aan te pool te worden toegevoegd, en de fail waarde is het aantal checks dat negatief moet zijn voor hij uit de roulatie wordt gehaald. Weigth als laatste geeft aan hoe zwaar een server moet wegen, hoe hoger het gewicht hoe meer deze server te doen krijgt t.o.v. de andere.

Start nu de loadbalancer als je ook de check.txt op de webservers heb staan met:

$ /etc/init.d/haproxy start

En surf naar http://IP/LoadBalancer en kijk of de webservers op groen komen te staan, indien ze groen zijn staan deze servers in de roulatie en kunnen ze worden gebruikt.

Last Updated on Friday, 24 July 2009 19:12