Jednoduchý webový cluster pomocí HaProxy

pondělí 7. dubna 2014

HaProxy

HaProxy je jedna z nejrozšířenějších služeb používaných například aplikacemi
typu Twitter, Github, Instagram, Reddit, Tumbrl.
Pro účely tohoto článku potřebujeme k dispozici tři virtuální servery pro demonstraci příkladů.


Instalace

Na stanicích s nainstalovanými Ubuntu stačí spustit příkaz apt-get install haproxy.
Konfigurační soubor se nachází v /etc/haproxy/haproxy.cfg. Ukázkovou konfiguraci, která je již uvedena v souboru můžeme klidně smazat.

Ukázková konfigurace klasického loadbalacingu

Základní loadbalancing, který každý požadavek posílá na náhodný webový server. 

HaProxy.cfg
global
        daemon
        maxconn 256

    defaults
        mode http
        timeout connect 5000ms
        timeout client 50000ms
        timeout server 50000ms

    frontend http-in
        bind *:80
        default_backend cluster1

    backend cluster1
        server webserver 192.168.1.107:80
        server webserver2 192.168.1.108:80
        balance roundrobin

Máme definovaný cluster1, který obsahuje dva servery a veškeré příchozí požadavku na portu *:80 posíláme právě na definovaný cluster1.

Statistiky

Pro získání detailních statistik, z HaProxy stačí přidat tento kousek konfigurace do HaProxy.cfg.
listen  lb_stats
        bind    *:8080
        mode    http
        balance roundrobin
        stats   uri /
        stats   realm "HaProxy Stats"
        stats   auth user:pass

Statistiky poté nalezneme na adrese http://192.168.1.106:8080.
Jak je vidět z konfigurace používáme port 8080 (port 80 je obsazen pro vyřizování příchozích požadavků na cluster1). Také je dobré z hlediska bezpečnosti nastavit login a heslo, v našem případě se jedná o přístupové jméno user heslo pass.



Žádné komentáře:

Okomentovat