Nastavení vyvažování zátěže webových serverů pomocí 'POUND' na RHEL / CentOS


POUND je program pro vyrovnávání zatížení vyvinutý společností ITSECURITY Company. Jedná se o lehký open source reverzní proxy nástroj, který lze použít jako nástroj pro vyrovnávání zatížení webového serveru k distribuci zátěže mezi několik serverů. Existuje několik výhod, které POUND poskytuje koncovému uživateli, které jsou velmi pohodlné a dělají práci správně.

  1. Supports virtual hosts.
  2. Configurable.
  3. When a backend server is failed or recovered from a failure, it detects it automatically and bases its load balancing decisions according to that.
  4. It rejects incorrect requests.
  5. No specified browser or webservers.

Pojďme se podívat, jak lze tento hack provést.

Nejprve budete potřebovat scénář pro lepší pochopení toho, jak toho dosáhnout. Použiji tedy scénář, kde jsou dva webové servery a jeden server brány, který potřebuje vyvážit požadavky přicházející na server brány k webovým serverům.

Pound Gateway Server : 172.16.1.222
Web Server 01 : 172.16.1.204
Web Server 02 : 192.168.1.161

Krok 1: Nainstalujte Pound Load Balancer na server brány

1. Nejjednodušší způsob, jak nainstalovat Pound, je použití předkompilovaných balíků RPM, RPM pro distribuce založené na RedHat najdete na:

  1. http://www.invoca.ch/pub/packages/pound/

Libru lze také snadno nainstalovat z úložiště EPEL, jak je znázorněno níže.

# yum install epel-release
# yum install Pound

Po instalaci Libry můžete ověřit, zda je nainstalována, vydáním tohoto příkazu.

# rpm –qa |grep Pound

2. Zadruhé, potřebujete dva webové servery k vyrovnání zátěže a ujistěte se, že máte jasné identifikátory, abyste mohli otestovat správnou konfiguraci libry.

Tady mám dva servery nesoucí IP adresy 172.16.1.204 a 192.168.1.161.

Pro snadné použití jsem vytvořil python SimpleHTTPServer pro vytvoření okamžitého webového serveru na obou serverech. Přečtěte si o pythonu SimpleHTTPServer

V mém scénáři mám webserver01 spuštěný na 172.16.1.204 přes port 8888 a webserver02 běžící na 192.168.1.161 přes port 5555.

Krok 2: Nakonfigurujte Libra Load Balancer

3. Nyní je čas provést konfigurace. Jakmile úspěšně nainstalujete libru, vytvoří se konfigurační soubor libry v/etc, jmenovitě pound.cfg .

Abychom vyrovnali zatížení mezi webovými servery, musíme upravit podrobnosti serveru a backendu. Přejděte na/etc a otevřete soubor pound.cfg pro úpravy.

# vi /etc/pound.cfg

Proveďte změny podle níže uvedeného návrhu.

ListenHTTP
    Address 172.16.1.222
    Port 80
End

ListenHTTPS
    Address 172.16.1.222
    Port    443
    Cert    "/etc/pki/tls/certs/pound.pem"
End

Service
    BackEnd
        Address 172.16.1.204
        Port    8888
    End

    BackEnd
        Address 192.168.1.161
        Port    5555
    End
End

Takto vypadá můj soubor pound.cfg.

Pod značkami „ListenHTTP“ a „ListenHTTPS“ musíte zadat IP adresu serveru, na který jste nainstalovali POUND.

Ve výchozím nastavení server zpracovává požadavky HTTP, ačkoli port 80 a HTTPS požadavky přes port 443. Pod značku „Služba“ můžete přidat libovolné množství dílčích značek s názvem „BackEnd“. Značky BackEnd nesou IP adresy a čísla portů, na kterých běží webové servery.

Nyní soubor po správné úpravě uložte a restartujte službu POUND vydáním jednoho z níže uvedených příkazů.

# /etc/init.d/pound restart 
OR
# service pound restart
OR
# systemctl restart pound.service

4. Nyní je čas na kontrolu. Otevřete dva webové prohlížeče a zkontrolujte, zda naše konfigurace fungují dobře. Do adresního řádku zadejte IP adresu brány POUND a podívejte se, co se objeví.

První požadavek by měl načíst první webový server01 a druhý požadavek z druhého webového prohlížeče by měl načíst druhý webový server02.

Dále si představte scénář, jako kdybyste měli dva webové servery k vyvážení zátěže a výkon jednoho serveru je dobrý a výkon jiného není tak dobrý.

Při vyrovnávání zátěže mezi nimi tedy budete muset zvážit, kterému serveru musíte přikládat větší váhu. Zřejmě pro server s dobrými výkonovými specifikacemi.

Chcete-li vyvážit takové zatížení, musíte do souboru pound.cfg přidat jediný parametr. Pojďme se na to podívat.

Think server 192.168.1.161:5555 je lepší server. Poté musíte na tento server přenést více požadavků. Pod značku „BackEnd“, která je nakonfigurována pro server 192.168.1.161, přidejte před značku End parametr „Priority“.

Podívejte se na níže uvedený příklad.

Rozsah, který můžeme použít pro parametr „Priorita“, je mezi 1-9. Pokud to nedefinujeme, bude přiřazena výchozí hodnota 5.

Pak bude zátěž rovnoměrně vyvážena. Pokud definujeme číslo priority, POUND načte server s vyšším číslem priority častěji. V tomto případě se tedy 192.168.1.161:5555 načte častěji než server 172.16.1.204:8888.

Krok 3: Plánování nouzových poruch

Nouzová značka: Tato značka se používá k načtení serveru v případě, že jsou všechny back-endové servery mrtvé. Můžete jej přidat před poslední koncovou značku pound.cfg následujícím způsobem.

“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND vždy sleduje, které back-endové servery jsou naživu a které nikoli. Můžeme definovat, za kolik sekund by měl POUND zkontrolovat back-endové servery přidáním parametru „Alive“ v libře.cfg.

Parametr můžete použít jako „Alive 30“ pro nastavení na 30 sekund. Libra dočasně zakáže back-endové servery, které neodpovídají. Když řekneme, že nereagující server může být mrtvý nebo nemůže v tuto chvíli navázat spojení.

POUND zkontroluje deaktivovaný back-end server po každém časovém období, které jste definovali v souboru pound.cfg v případě, že by server mohl navázat spojení, pak se POUND může vrátit zpět k práci se serverem.

7. POUND daemon bude zpracován příkazem poundctl. Díky tomu nemusíme upravovat soubor pound.cfg a můžeme vydávat Listner Server, BackEnd servery a relace atd. Pomocí jediného příkazu.

Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]
  1. -c defines path to your socket.
  2. -L / -l defines the listener of your architecture.
  3. -S / -s defines the service.
  4. -B / -b defines the backend servers.

Další informace najdete na manuálových stránkách poundctl.

Doufám, že se vám tento hack líbí a objevíte další možnosti. Neváhejte komentovat níže jakékoli návrhy a nápady. Zůstaňte v kontaktu s Tecmint pro praktické a nejnovější How To’s.