Máme tři stroje. Nainstalujeme HAproxy na jeden server a webové servery Apache na dva servery. Náš server HAproxy pak bude fungovat jako nástroj pro vyrovnávání zatížení a bude distribuovat zátěž mezi webové servery Apache.
Poznámka: Postup a příkazy uvedené v tomto příspěvku byly testovány Ubuntu 20.04 LTS (Focal Fossa). Stejný postup platí také pro distribuce Debian a Mint.
Podrobnosti o síti
Budeme používat tři servery Ubuntu; vše ve stejné síti. Podrobnosti o našich serverech jsou následující:
Název hostitele: HAproxy, IP adresa: 192.168.72.157 (frontendový server)Název hostitele: web-server1, IP adresa: 192.168.72.158 (backendové servery)
Název hostitele: web-server2, IP adresa: 192.168.72.159 (servery typu backend)
Poznámka: Na všech serverech musíte mít oprávnění sudo.
Jeden stroj nakonfigurujeme jako nástroj pro vyrovnávání zatížení a další dva jako webové servery. HAproxy server bude náš front-end server, který bude přijímat požadavky od uživatelů a předávat je na dva webové servery. Webové servery budou naše servery typu Backend, které budou přijímat tyto přeposlané požadavky.
Takto vypadá naše nastavení:
Nastavení webových serverů - servery typu backend
V této části nastavíme dva webové servery (webový server1 a webový server2) jako naše backendové servery.
Na webovém serveru1 (192.168.72.158)
Na webovém serveru proveďte níže uvedené kroky. Nezapomeňte nahradit názvy hostitelů a adresy IP příslušnými adresami IP a názvy hostitelů vašich webových serverů.
1. Nakonfigurujte soubor hostitelů
Na webový server1, upravit / etc / hosts soubor:
$ sudo nano / etc / hostsPoté přidejte položku názvu hostitele pro HAproxy server takto:
hostname-of-HAproxy IP-address-of-HAproxyV našem scénáři by to bylo:
HAproxy 192.168.72.1572. Nastavte webový server Apache
Nyní nainstalujte webový server Apache pomocí níže uvedeného příkazu v Terminálu. Můžete také navštívit náš příspěvek na Jak nainstalovat webový server Apache na Linuxu.
$ sudo apt nainstalovat apache2Poté povolte a spusťte službu Apache pomocí níže uvedených příkazů v Terminálu:
$ sudo systemctl povolit apache2$ sudo systemctl start apache2
Vytvořte indexový soubor pro webový server1 pomocí níže uvedeného příkazu v Terminálu:
$ echo "Ahoj! Toto je webový server 1: 192.168.72.158
"| sudo tee / var / www / html / index.htmlPokud je ve vašem systému spuštěna brána firewall, budete muset přes ni povolit provoz Apache:
$ sudo ufw povolit 80 / tcpPoté znovu načtěte konfigurace brány firewall:
$ ufw znovu načístNyní zkuste přejít na web ve webovém prohlížeči zadáním http: // následuje buď IP adresa, nebo název hostitele vašeho webového serveru.
http: // název hostitele nebo IP adresa
Alternativně můžete webovou stránku otestovat také pomocí příkazu curl.
$ zvlněníNa webovém serveru - 2 192.168.72.159)
Na druhém webovém serveru proveďte níže uvedené kroky. Nezapomeňte nahradit názvy hostitelů a adresy IP příslušnými adresami IP a názvy hostitelů vašich webových serverů.
1. Nakonfigurujte soubor hostitelů
v webový server2, upravit / etc / hosts soubor:
$ sudo nano / etc / hostsPoté přidejte položku názvu hostitele pro HAproxy server takto:
HAproxy 192.168.72.1572. Nainstalujte webový server Apache
Nyní nainstalujte webový server Apache pomocí níže uvedeného příkazu v Terminálu.
$ sudo apt nainstalovat apache2Poté povolte a spusťte službu Apache pomocí níže uvedených příkazů v Terminálu:
$ sudo systemctl povolit apache2$ sudo systemctl start apache2
Vytvořte indexový soubor pro web-server2 pomocí níže uvedeného příkazu v Terminálu:
$ echo "Ahoj! Toto je webserver2: 192.168.72.159
"| sudo tee / var / www / html / index.htmlPovolit Apache ve firewallu:
$ sudo ufw povolit 80 / tcpa poté znovu načtěte konfigurace brány firewall:
$ ufw znovu načístNyní zkuste přejít na web ve webovém prohlížeči zadáním http: // následuje buď IP adresa nebo název hostitele.
http: // název hostitele nebo IP adresa
Alternativně můžete k otestování webové stránky použít příkaz curl.
$ zvlněníNyní jsou naše webové servery Apache připraveny.
Nastavení serveru HAproxy Load Balancer-Frontend
V této části nastavíme HAproxy load balancer pro naši webové servery. Tento HAproxy server bude fungovat jako frontendový server a přijímá příchozí požadavky od klientů.
Na HAproxy server (192.168.72.157), proveďte níže uvedené kroky k nastavení nástroje pro vyrovnávání zatížení.
1. Nakonfigurujte soubor hostitelů
Upravte / etc / hosts soubor pomocí níže uvedeného příkazu v Terminálu:
$ sudo nano / etc / hostsPřidejte následující položky názvu hostitele pro oba Apache webové servery spolu s vlastním názvem hostitele:
192.168.72.157 HAproxy192.168.72.158 webový server
192.168.72.159 webový server2
Nyní uložte a zavřete / etc / hosts soubor.
Instalace nástroje pro rozložení zátěže HAproxy
Nyní v tomto kroku budeme instalovat HAproxy na jeden z našich serverů Ubuntu (192.168.72.157). Chcete-li tak učinit, aktualizujte apt pomocí následujícího příkazu v Terminálu:
$ sudo apt-get aktualizacePak aktualizujte balíčky pomocí následujícího příkazu:
$ sudo apt-get upgradeNyní nainstalujte HAproxy pomocí následujícího příkazu v Terminálu:
$ sudo sudo apt nainstalovat haproxy
Po dokončení instalace serveru HAproxy jej můžete potvrdit pomocí následujícího příkazu v Terminálu:
$ haproxy -vUkáže vám nainstalovanou verzi HAproxy ve vašem systému, která ověří, že HAproxy byl úspěšně nainstalován.
Konfigurace HAproxy jako nástroje pro vyrovnávání zatížení
V následující části nakonfigurujeme HAproxy jako nástroj pro vyrovnávání zatížení. Udělat to tak, upravte / etc / haproxy / haproxy.srov soubor:
$ sudo nano / etc / haproxy / haproxy.srovPřipojte následující řádky v haproxy.cfg soubor nahrazující IP adresy vašimi vlastními IP adresami.
The frontend web-frontend ve výše uvedených konfiguračních řádcích říká HAproxy, aby poslouchal příchozí požadavky na portu 80 z 192.168.72.157 a poté je přeposlat na back-endové servery nakonfigurované pod backend webový backend. Při konfiguraci nahraďte adresy IP příslušnými adresami IP vašich webových serverů.
Konfigurace monitorování HAproxy
S monitorováním HAproxy můžete zobrazit spoustu informací, včetně stavu serveru, přenesených dat, doby provozu, rychlosti relace atd. Chcete-li nakonfigurovat monitorování HAproxy, připojte následující řádky do konfiguračního souboru umístěného na / etc / haproxy / haproxy.srov:
poslouchat statistikysvázat 192.168.72.157: 8080
režim http
možnost forwardfor
možnost httpclose
statistiky povoleny
statistiky ukazují legendy
aktualizace statistik 5 s
statistiky uri / statistiky
statistiky říše Haproxy \ Statistiky
stats auth kbuzdar: kbuzdar       # Přihlášení uživatele a hesla pro monitorování
stats admin if TRUE
default_backend web-backend
Výše uvedená konfigurace umožňuje HAproxy -statistikyStránka pomocí statistiky směrnice a zajišťuje ji http základní autentizace pomocí uživatelského jména a hesla definovaného statistiky ověř směrnice.
Až budete s konfiguracemi hotovi, uložte a zavřete haproxy.soubor CFG.
Nyní ověřte konfigurační soubor pomocí níže uvedeného příkazu v Terminálu:
$ haproxy -c -f / etc / haproxy / haproxy.srovNásledující výstup ukazuje, že konfigurace jsou správné.
Chcete-li použít tyto konfigurace, restartujte službu HAproxy:
$ sudo systemctl restart haproxy.servisZastaví se a poté spustí službu HAproxy.
Chcete-li zkontrolovat stav služby HAproxy, bude příkaz:
$ sudo systemctl status haproxy.servisThe aktivní (běží) stav v následujícím výstupu ukazuje, že HAproxy server je povolený a běží dobře.
Zde je několik dalších příkazů pro správu serveru HAproxy:
Chcete-li spustit server HAproxy, bude příkaz:
$ sudo systemctl start haproxy.servisChcete-li zastavit server HAproxy, bude příkaz:
$ sudo systemctl stop haproxy.servisV případě, že chcete dočasně deaktivovat HAproxy server, bude příkaz:
$ sudo systemctl zakáže haproxy.servisChcete-li znovu povolit server HAproxy, bude příkaz:
$ sudo systemctl povolit haproxy.servisVyzkoušejte HAproxy
Před testováním nastavení HAproxy se ujistěte, že máte připojení k webovým serverům. Z vašeho HAproxy serveru proveďte ping na oba webové servery buď podle jejich IP adres nebo názvů hostitelů.
$ ping název hostitele nebo IP adresaNásledující výstup ukazuje, že server HAproxy se může dostat na oba webové servery.
Otestujte HA Proxy pomocí webového prohlížeče
Nyní na serveru HAproxy otevřete libovolný webový prohlížeč a zadejte http: // následuje IP adresa HAproxy serveru, která je v našem případě 192.168.72.157.
http: // 192.168.72.157Server HAproxy alternativně odešle požadavek na oba webové servery metodou round-robin. Můžete to otestovat tak, že webovou stránku několikrát načtete.
Toto je odpověď, kterou jsme dostali, když jsme navštívili http: // 192.168.72.157 poprvé:
Toto je odpověď, kterou jsme dostali, když jsme znovu načetli webovou stránku:
Místo IP adresy HAproxy serveru můžete také použít název hostitele.
Vyzkoušejte HA Proxy pomocí zvlnění
K otestování nastavení HAproxy můžete také použít příkaz curl v Linuxu. Otevřete terminál a zadejte kučera následuje IP adresa nebo název hostitele HAproxy serveru.
$ zvlnění 192.168.72.157nebo
$ curl HAproxySpusťte příkaz curl několikrát a uvidíte střídání odezvy mezi oběma webovými servery.
Místo toho, abyste příkazy spustili několikrát, můžete také spustit následující jednořádkový skript a otestovat server HAproxy:
$ zatímco pravda; zvlnit 192.168.72.157; spát 1; Hotovo
Testování monitorování HAproxy
Chcete-li přejít na stránku monitorování HAproxy, zadejte http: // následuje IP adresa / název hostitele HAproxy serveru a port 8080 / stats:
http: // 192.168.72.157: 8080 / statistikynebo
http: // HAproxy: 8080 / statsZobrazí se následující ověřovací pole. Enter uživatelské jméno a Heslo jste nakonfigurovali dříve v konfiguracích a poté stiskněte OK.
Toto je statistická zpráva pro náš server HAproxy.
Zde máte instalaci a konfiguraci HAproxy load balancer v systému Linux. Právě jsme diskutovali o základním nastavení a konfiguraci HAproxy jako nástroje pro vyrovnávání zatížení pro webové servery Apache. Podívali jsme se také na některé příkazy pro správu HAproxy serveru. Nakonec jsme otestovali vyvažování zátěže pomocí prohlížeče a příkazu curl. Další informace najdete v oficiální dokumentaci HAproxy