HAProxy als HTTP Load Balancer

Review of:

Reviewed by:
Rating:
5
On 25 februari, 2014
Last modified:10 december, 2016

Summary:

HAProxy als HTTP Load Balancer op CentOS 6haproxy HAProxy als HTTP Load Balancer vps server

Klinkt het niet goed als je een druk bezochte website hebt en een load balancer de bezoekers automatisch balanceert over meerdere webservers om de snelheid optimaal te houden?

Dat is precies wat ik in deze Howto ga uitleggen i.c.m. HAProxy!

In deze test setup ga ik alles binnen een intern netwerk opzetten. Wanneer je dit gaat opzetten binnen een live omgeving krijgt de Loadbalancer natuurlijk een public IP en verwijst het domeinnaam naar de Loadbalancer.

Mijn Setup:

Loadbalancer > interndomein.nl >192.168.15.250

Webserver1 > 192.168.15.251

Webserver2 > 192.168.15.252

Alle 3 de servers hebben een minimale CentOS 6.4 installatie.

laten we beginnen met de Loadbalancer:

We hebben de EPEL repository nodig om HAProxy te installeren.

 

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -Uvh  epel-release-6*.rpm

yum -y install haproxy

Nu we HAProxy hebben geinstalleerd gaan we deze configureren. Maak eerst een backup van de originele conf zodat je altijd terug kan.

cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak

Tijd om de configuratie goed te zetten.

nano /etc/haproxy/haproxy.cfg

Kopieer dit voorbeeld in de haproxy.cfg

#———————————————————————
# Rackspace Cloud Professional Services, default configuration. See
# the full configuration options online.
#
# http://haproxy.1wt.eu/download/1.3/doc/configuration.txt
#
#———————————————————————

#———————————————————————
# Global settings
#———————————————————————
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
#debug
#quiet
user haproxy
group haproxy

#———————————————————————
# Defaults that are optimized for a Cloud Servers based
# Infrastructure.
#———————————————————————

defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 20000
contimeout 5000
clitimeout 50000
srvtimeout 50000
#———————————————————————
# HTTP default webfarm
#———————————————————————

#replace with shared public ip
listen webfarm ….:80
mode http
stats enable
stats uri /haproxy
stats realm Haproxy Statistics
stats auth admin:admin
balance roundrobin
#replace XXXX with customer site name
cookie XXXX insert indirect nocache
option httpclose
option forwardfor
#replace with web node private ip
server web01 ….:80
#replace with web node private ip
server web02 ….:80

#———————————————————————
# HTTPS default webfarm for SSL
#———————————————————————
#listen ssl_webfarm 0.0.0.0:443 #replace with shared public ip
# mode tcp
# balance source
# option ssl-hello-chk
# option forwardfor
# #replace with web node private ip
# server web01 …..:443 check
# #replace with web node private ip
# server web02 …..:443 check

Pas de volgende gegevens aan

 

webfarm public.ip.van.loadbalancer:80
server web02 intern.ip.va.webserver2:80
server web01 intern.ip.van.webserber1:80

nu nog HAProxy starten op de Loadbalancer en HTTPD starten op de webservers

service haproxy start

service httpd start

Om het te testen maken we op beide webservers een index.html aan met daarin WEBSERVER1 en WEBSERVER2.

nano /var/www/html/index.html

Wanneer we nu het IP van onze Loadbalancer bezoeken zal deze ons automatisch balanceren over de webservers. Dit kun je zien door een aantal keer te refreshen.

webserver2 HAProxy als HTTP Load Balancer vps server webserver1 HAProxy als HTTP Load Balancer vps server

 

Klaar! Je hebt nu een basis load balancing setup.

Maar wat nou als je een website hebt maar een gebruiker in moet loggen? Wanneer er een cookie gemaakt word is het niet handig dat een bezoeker de heletijd van webserver veranderd, dit zou beteken dat de bezoeker elke keer opnieuw moet inloggen.

Gelukkig kunnen we hier wat aan doen.

voeg het laatste toe aan de haproxy.cfg

server web02 intern.ip.va.webserver2:80 cookie B check
server web01 intern.ip.van.webserber1:80 cookie A check

Herstart de HAProxy en hierna word er met elke request een cookie meegestuurd die de bezoeker elke keer op de juiste webserver laat uitkomen.

Klaar!

HAProxy statistieken

HAProxy heeft een mooi ingebouwde interface waarmee je een aantal statistieken kan zien over de load balancer en het verkeer naar de webservers. In de configuratie die jullie als voorbeeld van mij hebben gekregen heb ik deze al aan gezet. bezoek het adres van de load balancer en plak dit achter de URL

/haproxy

de standaard inlog gegevens zijn admin/admin

stats1 1024x188 HAProxy als HTTP Load Balancer vps server

Veel plezier met de load balancing setup!

Deel gauw met anderen:facebook HAProxy als HTTP Load Balancer vps server twitter HAProxy als HTTP Load Balancer vps server google HAProxy als HTTP Load Balancer vps server pinterest HAProxy als HTTP Load Balancer vps server linkedin HAProxy als HTTP Load Balancer vps server stumbleupon HAProxy als HTTP Load Balancer vps server print HAProxy als HTTP Load Balancer vps server email HAProxy als HTTP Load Balancer vps server

Opmerking toevoegen

Current day month ye@r *