HAProxy, jak název napovídá, je proxy server a load balancer pro zajištění vysoké dostupnosti. V tomto článku nejprve ukážu, jak nainstalovat HAProxy ve FreeBSD. Dále se nastavíme tak, aby fungoval jako reverzní proxy.
Instalace
Ve FreeBSD rád sestavuji a instaluji svůj software ze stromu portů, takže spusťte jako root:
# cd /usr/ports/net/haproxy
# make install clean 
 Věnujte pozornost obrazovce, kde se zobrazí dialogové okno s možnostmi (většinou ze závislostí). Po instalaci povolte HAProxy v /etc/rc.conf a pokračujte další částí:
# /usr/local/etc/rc.d/haproxy enable
haproxy enabled in /etc/rc.confKonfigurace
Než budeme pokračovat v úpravách konfiguračního souboru, dovolte mi vysvětlit scénář:
Nejprve máme k dispozici pouze jednu veřejnou IP. Za druhé, máme několik služeb, které chceme vystavit na internetu, řekněme aplikaci (webapp) a naše webové stránky. Oba běží na svých vlastních serverech. Konečně máme třetí náhradní server, kam jsme již nainstalovali HAProxy v předchozí sekci a tento bude vystaven na internetu.
Uživatel nasměruje svůj prohlížeč na http://haproxy/website nebo http://haproxy/app a haproxy odešle dotaz na správný server a vrátí výsledky do prohlížeče.
                                      ________         /------- [server A]
[ client browser] ----->   | haproxy  |-----+
                                    +----------+        \--------[server B]
 Každopádně, wikipedie lépe popíše, jak funguje reverzní proxy.
Přidejte následující části do /usr/local/etc/haproxy.conf. Chcete-li spustit globální výchozí hodnoty, jsou v pořádku:
frontend http-in
    bind *:80
    option forwardfor
    use_backend uno if { path_beg /app}
    use_backend dos if { path_beg /www }
backend uno
    mode http
    server nodea ipAp.or.fqdn:port
backend dos
       mode http
       server nodeb ipB.or.fqdn:port
 Pokud jako já nemáte příklad haproxy.conf, přidejte tuto sekci na začátek souboru:
global
    daemon
    maxconn 4096
defaults
   log global
   mode http
   timeout connect 5s
   timeout client 10s
   timeout server 10s
 S touto minimální konfigurací můžete zkontrolovat, zda je vše v pořádku, a spustit službu:
 
 
 Pro testovací účely jsem udělal haproxy, abych mohl získat věci z mého vlastního počítače:
 
 
 
 
 Mám Apache, kam ukládám nějaké programy, které bych mohl potřebovat, když jsem na cizím PC. Kouzelné slovo je úplná adresa URL některých z těchto programů.
A co nějaké skutečné použití HAProxy?
Toto je minimální příklad, mimochodem nepříliš užitečný. Důrazně doporučuji přečíst si alespoň dva dokumenty HAProxy:
- Příručka pro začátečníky a
- Konfigurační příručka
A váš haproxy.conf soubor by byl tak komplikovaný nebo jednoduchý, jak je potřeba.