Máme tri stroje. Nainštalujeme HAproxy na jeden server a webové servery Apache na dva servery. Náš server HAproxy bude potom slúžiť ako nástroj na vyrovnávanie zaťaženia a bude distribuovať zaťaženie medzi webové servery Apache.
Poznámka: Postup a príkazy uvedené v tomto príspevku boli testované Ubuntu 20.04 LTS (Focal Fossa). Rovnaký postup platí aj pre distribúcie Debian a Mint.
Podrobnosti o sieti
Budeme používať tri servery Ubuntu; všetky v rovnakej sieti. Podrobnosti o našich serveroch sú tieto:
Názov hostiteľa: HAproxy, IP adresa: 192.168.72.157 (frontendový server)Názov hostiteľa: web-server1, IP adresa: 192.168.72.158 (servery typu backend)
Názov hostiteľa: web-server2, IP adresa: 192.168.72.159 (servery typu backend)
Poznámka: Na všetkých serveroch musíte mať oprávnenie sudo.
Jeden počítač nakonfigurujeme ako nástroj na vyrovnávanie zaťaženia a ďalšie dva ako webové servery. Server HAproxy bude náš front-end server, ktorý bude prijímať požiadavky od používateľov a preposielať ich na dva webové servery. Webové servery budú našimi servermi typu backend, ktoré budú prijímať tieto preposlané požiadavky.
Takto vyzerá naše nastavenie:
Nastavenie webových serverov - servery typu backend
V tejto časti nastavíme dva webové servery (web-server1 a web-server2) ako naše backendové servery.
Na webovom serveri1 (192.168.72.158)
Na svojom webovom serveri vykonajte nasledujúce kroky. Nezabudnite nahradiť názvy hostiteľov a adresy IP príslušnými adresami IP a názvami hostiteľov svojich webových serverov.
1. Nakonfigurujte súbor hostiteľov
On web-server1, upraviť / etc / hostitelia spis:
$ sudo nano / etc / hostsPotom pridajte položku názvu hostiteľa pre HAproxy server takto:
hostname-of-HAproxy IP-address-of-HAproxyV našom scenári by to bolo:
HAproxy 192.168.72.1572. Nastavte webový server Apache
Teraz nainštalujte webový server Apache pomocou nižšie uvedeného príkazu v Termináli. Môžete tiež navštíviť náš príspevok na Ako nainštalovať webový server Apache na systéme Linux.
$ sudo apt nainštalovať apache2Potom povoľte a spustite službu Apache pomocou nižšie uvedených príkazov v Termináli:
$ sudo systemctl povoliť apache2$ sudo systemctl start apache2
Vytvorte indexový súbor pre web-server1 pomocou nižšie uvedeného príkazu v Termináli:
$ echo "Ahoj! Toto je webový server 1: 192.168.72.158
"| sudo tee / var / www / html / index.htmlAk je vo vašom systéme spustená brána firewall, budete musieť cez ňu povoliť prenos Apache:
$ sudo ufw povoliť 80 / tcpPotom znova načítajte konfigurácie brány firewall:
$ ufw znovu načítaťTeraz skúste prejsť na web vo svojom webovom prehliadači zadaním http: // za ktorým nasleduje buď IP adresa alebo názov hostiteľa vášho webového servera.
http: // názov hostiteľa alebo IP adresa
Alternatívne môžete webovú stránku otestovať aj pomocou príkazu curl.
$ zvlnenieNa webovom serveri-2 192.168.72.159)
Na svojom druhom webovom serveri vykonajte kroky uvedené nižšie. Nezabudnite nahradiť názvy hostiteľov a adresy IP príslušnými adresami IP a názvami hostiteľov svojich webových serverov.
1. Nakonfigurujte súbor hostiteľov
V web-server2, upraviť / etc / hostitelia spis:
$ sudo nano / etc / hostsPotom pridajte položku názvu hostiteľa pre HAproxy server takto:
HAproxy 192.168.72.1572. Nainštalujte webový server Apache
Teraz nainštalujte webový server Apache pomocou nižšie uvedeného príkazu v Termináli.
$ sudo apt nainštalovať apache2Potom povoľte a spustite službu Apache pomocou nižšie uvedených príkazov v Termináli:
$ sudo systemctl povoliť apache2$ sudo systemctl start apache2
Vytvorte indexový súbor pre web-server2 pomocou nižšie uvedeného príkazu v Termináli:
$ echo "Ahoj! Toto je webserver2: 192.168.72.159
"| sudo tee / var / www / html / index.htmlPovoliť Apache vo firewalle:
$ sudo ufw povoliť 80 / tcpa potom znova načítajte konfigurácie brány firewall:
$ ufw znovu načítaťTeraz skúste prejsť na web vo svojom webovom prehliadači zadaním http: // za ktorým nasleduje buď IP adresa alebo názov hostiteľa.
http: // názov hostiteľa alebo IP adresa
Alternatívne môžete na otestovanie webovej stránky použiť príkaz curl.
$ zvlnenieTeraz sú naše webové servery Apache pripravené.
Nastavenie servera rozhrania HAproxy load balancer - frontend
V tejto časti nastavíme HAproxy load balancer pre našu webové servery. Tento server HAproxy bude fungovať ako frontendový server a prijíma prichádzajúce požiadavky od klientov.
Na HAproxy server (192.168.72.157), vykonajte nasledujúce kroky na nastavenie nástroja na vyrovnávanie zaťaženia.
1. Nakonfigurujte súbor hostiteľov
Upravte / etc / hostitelia súbor pomocou nižšie uvedeného príkazu v Termináli:
$ sudo nano / etc / hostsPridajte pre obidva nasledujúce položky názvu hostiteľa Apache webové servery spolu s vlastným menom hostiteľa:
192.168.72.157 HAproxy192.168.72.158 webový server1
192.168.72.159 web-server2
Teraz uložte a zatvorte / etc / hostitelia spis.
Inštalácia nástroja na vyrovnávanie zaťaženia HAproxy
Teraz v tomto kroku budeme inštalovať HAproxy na jeden z našich serverov Ubuntu (192.168.72.157). Ak to chcete urobiť, aktualizujte apt pomocou nasledujúceho príkazu v Termináli:
$ sudo apt-get aktualizáciaPotom aktualizujte balíčky pomocou nasledujúceho príkazu:
$ sudo apt-get aktualizáciaTeraz nainštalujte HAproxy pomocou nasledujúceho príkazu v Termináli:
$ sudo sudo apt nainštalovať haproxy
Po dokončení inštalácie servera HAproxy ju môžete potvrdiť pomocou nasledujúceho príkazu v Termináli:
$ haproxy -vUkáže vám nainštalovanú verziu HAproxy vo vašom systéme, ktorá overí, že HAproxy bol úspešne nainštalovaný.
Konfigurácia HAproxy ako nástroja na vyrovnávanie zaťaženia
V nasledujúcej časti nakonfigurujeme HAproxy ako nástroj na vyrovnávanie zaťaženia. Urobiť tak, upravte súbor / etc / haproxy / haproxy.porov spis:
$ sudo nano / etc / haproxy / haproxy.porovPripojte nasledujúce riadky k haproxy.cfg súbor nahradzujúci IP adresy vašimi vlastnými IP adresami.
The frontend web-frontend vo vyššie uvedených konfiguračných riadkoch hovorí HAproxy, aby počúvalo prichádzajúce požiadavky na porte 80 z 192.168.72.157 a potom ich preposlať na servery typu back-end nakonfigurované pod backend webový backend. Pri konfigurácii nahraďte adresy IP príslušnými adresami IP vašich webových serverov.
Konfigurácia monitorovania HAproxy
S monitorovaním HAproxy môžete zobraziť veľa informácií vrátane stavu servera, prenesených údajov, doby prevádzky, rýchlosti relácie atď. Ak chcete nakonfigurovať monitorovanie HAproxy, pripojte nasledujúce riadky v konfiguračnom súbore umiestnenom na / etc / haproxy / haproxy.porov:
počúvať štatistikyviazať 192.168.72.157: 8080
režim http
možnosť forwardfor
možnosť httpclose
štatistiky povoliť
štatistiky show-legendy
obnovenie štatistík 5 s
stats uri / stats
stats realm Haproxy \ Statistics
stats auth kbuzdar: kbuzdar? Prihlásenie používateľa a heslo pre monitorovanie
štatistika admin ak je PRAVDA
default_backend web-backend
Vyššie uvedená konfigurácia umožňuje HAproxy -štatistikystránka pomocou štatistiky smernice a zabezpečuje ju pomocou http základné overenie totožnosti pomocou používateľského mena a hesla definovaného serverom stats auth smernice.
Po dokončení konfigurácií uložte a zavrite haproxy.cfg súbor.
Teraz overte konfiguračný súbor pomocou nižšie uvedeného príkazu v Termináli:
$ haproxy -c -f / etc / haproxy / haproxy.porovNasledujúci výstup ukazuje, že konfigurácie sú správne.
Teraz, aby ste použili konfigurácie, reštartujte službu HAproxy:
$ sudo systemctl reštartujte haproxy.službyZastaví sa a potom sa spustí služba HAproxy.
Na kontrolu stavu služby HAproxy by mal príkaz:
$ sudo systemctl status haproxy.službyThe aktívny (beh) stav v nasledujúcom výstupe ukazuje, že server HAproxy je povolený a funguje dobre.
Tu je niekoľko ďalších príkazov na správu servera HAproxy:
Na spustenie HAproxy servera bude príkaz:
$ sudo systemctl spusti haproxy.službyNa zastavenie servera HAproxy bude príkaz:
$ sudo systemctl stop haproxy.službyV prípade, že chcete dočasne vypnúť server HAproxy, bude to príkaz:
$ sudo systemctl zakáže haproxy.službyAk chcete znova povoliť server HAproxy, bude to príkaz:
$ sudo systemctl povoliť haproxy.službyVyskúšajte HAproxy
Pred testovaním nastavenia HAproxy sa uistite, či máte pripojenie k webovým serverom. Z vášho servera HAproxy vykonajte test ping na oba webové servery buď podľa ich adries IP, alebo názvov hostiteľov.
$ ping názov hostiteľa alebo adresa IPNasledujúci výstup ukazuje, že server HAproxy sa môže dostať na oba webové servery.
Vyskúšajte HA Proxy pomocou webového prehliadača
Teraz na serveri HAproxy otvorte ľubovoľný webový prehliadač a napíšte http: // nasleduje IP adresa HAproxy servera, ktorá je v našom prípade 192.168.72.157.
http: // 192.168.72.157Server HAproxy alternatívne odošle požiadavku na oba webové servery spôsobom „každý s každým“. Môžete to vyskúšať opakovaným načítaním webovej stránky.
Toto je odpoveď, ktorú sme dostali, keď sme navštívili stránku http: // 192.168.72.157 prvýkrát:
Toto je odpoveď, ktorú sme dostali, keď sme znovu načítali webovú stránku:
Môžete tiež použiť názov hostiteľa namiesto adresy IP servera HAproxy.
Vyskúšajte HA Proxy pomocou zvlnenia
Na otestovanie nastavenia HAproxy môžete tiež použiť príkaz curl v systéme Linux. Otvorte terminál a napíšte zvlnenie nasleduje IP adresa alebo názov hostiteľa servera HAproxy.
zvlnenie 192 dolárov.168.72.157alebo
$ zvlnenie HAproxySpustite príkaz curl niekoľkokrát a uvidíte, ako sa odpoveď bude striedavo pohybovať medzi oboma webovými servermi.
Namiesto opakovaného spustenia príkazov môžete tiež spustiť nasledujúci jednoriadkový skript, ktorý otestuje server HAproxy:
$, kým je to pravda; urob zvlnenie 192.168.72.157; spať 1; hotový
Testovanie monitorovania HAproxy
Ak chcete prejsť na stránku monitorovania HAproxy, napíšte http: // nasleduje IP adresa / názov hostiteľa servera HAproxy a port 8080 / stats:
http: // 192.168.72.157: 8080 / štatistikyalebo
http: // HAproxy: 8080 / statsZobrazí sa nasledujúce overovacie pole. Zadajte užívateľské meno a heslo ste nakonfigurovali skôr v konfiguráciách a potom stlačte Ok.
Toto je štatistická správa pre náš server HAproxy.
Tam máte inštaláciu a konfiguráciu nástroja HAproxy load balancer v systéme Linux. Práve sme hovorili o základnom nastavení a konfigurácii HAproxy ako nástroja na vyrovnávanie zaťaženia pre webové servery Apache. Pozreli sme sa tiež na niektoré príkazy na správu servera HAproxy. Nakoniec sme vyváženie záťaže otestovali cez prehliadač a príkaz curl. Ďalšie informácie nájdete v oficiálnej dokumentácii HAproxy