Vyrovnávanie zaťaženia je najbežnejšou praxou distribúcie prichádzajúceho webového prenosu medzi viaceré servery typu back-end. Vďaka tomu je aplikácia vysoko dostupná, aj keď niektoré servery z nejakého dôvodu vypadnú. Vyrovnávanie zaťaženia zvyšuje efektivitu a spoľahlivosť webovej aplikácie. Na ten istý účel sa používa HAProxy load-balancer. Je to najbežnejšie používaný nástroj na vyrovnávanie zaťaženia v priemyselných odvetviach. Podľa oficiálnych webových stránok používajú HAProxy popredné spoločnosti ako AWS, Fedora, Github a mnoho ďalších.
HAProxy alebo Proxy vysokej dostupnosti poskytuje riešenie vysokej dostupnosti a proxy servera. Je napísaný v jazyku C a pracuje na sieťových a aplikačných vrstvách modelu TCP / IP. Najlepšie je, že má bezplatné komunitné vydanie a jedná sa o open-source aplikáciu. Funguje na operačných systémoch Linux, FreeBSD a Solaris. Je tu aj podniková edícia, ktorá má však cenovku.
V tejto príručke uvidíme Ako nainštalovať HAProxy a nakonfigurovať server na vyrovnávanie zaťaženia v Debiane 10.
Predpoklady:
- “Sudo” prístup ku všetkým strojom a základné znalosti o spúšťaní príkazov v termináli Linux.
- Na servery na vyrovnávanie zaťaženia a na backendové servery boli pridané súkromné adresy IP.
- Operačný systém Debian 10 nainštalovaný na všetkých počítačoch.
Inštalácia HAProxy na Debian 10
Pre našu príručku budeme predpokladať nasledujúcu konfiguráciu adresy IP:
- HAProxy load-balancer 10.0.12.10
- Webový server1: IP adresa: 10.0.12.15
- Webový server2: IP adresa: 10.0.12.16
Krok 1. Aktualizujte úložisko a balíky systému Debian
Najskôr spustite nižšie uvedené príkazy na všetkých systémoch a aktualizujte softvérové balíčky na najnovší.
$ sudo apt aktualizácia$ sudo apt upgrade -y
Krok: 2 Nainštalujte Nginx na serveroch typu back-end
Pripravte si svoje servery typu back-end nainštalovaním webového servera Nginx na každý z nich. Môžete sa tiež rozhodnúť nainštalovať ďalšie webové servery, napríklad apache.
Ak chcete nainštalovať Nginx, spustite nasledujúce príkazy na každom serveri typu back-end vo vašom prostredí:
$ sudo apt nainštalovať nginxKrok: 3 Po nainštalovaní Nginx na vaše servery typu back-end spustite službu, ako je uvedené nižšie:
$ Sudo systemctl start nginxTIP: Webový server nginx môžeme tiež spravovať pomocou nasledujúceho príkazu:
$ sudo / etc / init.„voľba“ d / nginxmožnosť: začať znovu načítať reštartovať stav zastaviť
Krok: 4 Vytvorte vlastné indexové stránky vo webovom priečinku každého webového servera Nginx. To nám pomôže rozlíšiť, ktorý server typu back-end slúži na prichádzajúce požiadavky.
Na každom webovom serveri vykonajte nasledujúce úlohy:
Zálohujte pôvodný indexový súbor pomocou nasledujúceho príkazu:
$ sudo cp / usr / share / nginx / html / index.html / usr / share / nginx / html / index.html.pôvPridajte do indexu vlastný text.html súbor. Pridávame IP adresu každého webového servera.
Pre webový server 1:
$ sudo echo "Webový server 1:10.0.12.15 "| sudo tee / usr / share / nginx / html / index.htmlPre webový server 2:
$ sudo echo "Webový server 2:10.0.12.16 "| sudo tee / usr / share / nginx / html / index.htmlAk vám to vyhovuje viac, môžete použiť aj editor vi. Toto je zobrazené nižšie:
$ sudo vi / usr / share / nginx / html / index.htmlPo otvorení súboru zadajte text a uložte súbor.
Otvorte predvolený súbor virtuálneho hostiteľa v adresári „/ etc / nginx / sites-available /“.
$ sudo nano / etc / nginx / sites-available / defaultTeraz vo vnútri serverového bloku zmeňte koreňovú smernicu z „/ var / www / html“ na „/ usr / share / nginx / html“.
Ak chcete skontrolovať konfiguráciu Nginx, spustite nasledujúci príkaz:
$ sudo nginx -tKrok 5: Teraz reštartujte službu pomocou príkazu:
$ sudo systemctl reštart nginxStav nginx môžete skontrolovať pomocou nasledujúceho príkazu:
$ sudo systemctl status nginxKrok: 6 Ak chcete nainštalovať HAProxy na Debian 10 (Buster), spustite nasledujúci príkaz na nástroji na vyrovnávanie zaťaženia.
$ sudo apt nainštalovať haproxy -yTip: Po nainštalovaní HAProxy môžete HAProxy spravovať pomocou inicializačného skriptu. Za týmto účelom nastavte parameter „enabled“ na 1 v „/ etc / default / haproxy“, ako je uvedené nižšie:
$ sudo vi / etc / default / haproxyZAPNUTÉ = 1
Teraz je možné s init skriptom použiť nasledujúcu voľbu:
voľba $ sudo služba haproxy “.“možnosť: začať znovu načítať reštartovať stav zastaviť
Krok: 7 Teraz nakonfigurujte nástroj na vyrovnávanie zaťaženia HAProxy úpravou predvoleného konfiguračného súboru haproxy, t.e. „/ Etc / haproxy / haproxy.cfg ”. Ak chcete tento súbor upraviť, spustite nasledujúci príkaz
$ sudo vi / etc / haproxy / haproxy.porovTip: Zálohujte pôvodný súbor, aby sme v prípade, že sa niečo pokazí, boli v bezpečí. Na vykonanie zálohy použite nasledujúci príkaz:
$ sudo cp / etc / haproxy / haproxy.cfg / etc / haproxy / haproxy.porov.pôvTeraz prejdite na koniec súboru a upravte nasledujúce informácie:
frontend Local_Serverviazať 10.0.12.10:80
režim http
default_backend webový server
backendový webový server
režim http
zostatok roundrobin
možnosť forwardfor
http-požiadavka set-header X-Forwarded-Port% [dst_port]
http-request add-header X-Forwarded-Proto https if if ssl_fc
možnosť httpchk HEAD / HTTP / 1.1rnHost: localhost
server web1 10.0.12.15:80
server web2 10.0.12.16:80
Poznámka: Nezabudnite zmeniť adresy IP vo vyššie uvedenom súbore na adresy, ktoré ste pridali na svoje webové servery.
Krok: 8 Overte syntax konfigurácie vyššie uvedeného súboru pomocou nasledujúceho príkazu:
$ sudo haproxy -c -f / etc / haproxy / haproxy.porovAk všetko pôjde správne, zobrazí sa výstup ako: „Konfiguračný súbor je platný.„Ak sa na výstupe vyskytne chyba, znova skontrolujte konfiguračný súbor a znova ho overte.
Krok: 9 Ak chcete zmeny použiť, reštartujte službu HAProxy
$ sudo služba haproxy reštartTestovanie konfigurácie
Teraz je čas zistiť, či naše nastavenie funguje správne. Zadajte adresu IP systému vyrovnávania zaťaženia vo webovom prehliadači (v našom prípade je to 10.0.12.10) a stránku priebežne obnovujte 2-4-krát, aby ste zistili, či nástroj na vyrovnávanie zaťaženia HAProxy funguje správne. Mali by ste vidieť rôzne IP adresy alebo akýkoľvek text, ktorý ste zadali do indexu.html súbor, keď budete pokračovať v obnovovaní stránky viackrát.
Ďalším spôsobom, ako skontrolovať, je prepnúť jeden webový server do režimu offline a skontrolovať, či žiadosti poskytuje iný webový server.
To je zatiaľ všetko! Skúste experimentovať s HAProxy a dozviete sa viac o tom, ako to funguje. Napr.g., si môžete vyskúšať:
- Integrácia rôznych webových serverov okrem nginx.
- Zmena algoritmu vyvažovania záťaže na niečo iné ako každý s každým.
- Konfigurácia kontroly stavu HAProxy na určenie, či server typu back-end funguje alebo nie.
- Aplikácia lepivých relácií na pripojenie používateľa k rovnakému serveru typu back-end.
- Používanie štatistík HAProxy na získanie štatistík o premávke na serveroch.
HAProxy má k dispozícii rozsiahlu dokumentáciu pre komunitné vydanie HAProxy aj pre podnikovú verziu HAProxy. Preskúmajte túto dokumentáciu a získajte viac podrobností o zlepšení výkonu a spoľahlivosti serverového prostredia.
Táto príručka bola úspešne vykonaná v systéme Debian 10 (Buster). Pokúste sa nainštalovať HAProxy na iné distribúcie založené na Debiane, ako sú Ubuntu, Linux Mint atď. Nezabudnite túto príručku zdieľať s ostatnými.