Vyhledávání na webu

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


POUND je program pro vyrovnávání zátěže 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 rozložení 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í svou práci správně.

  1. Podporuje virtuální hostitele.
  2. Konfigurovatelné.
  3. Když backend server selže nebo se po selhání zotaví, automaticky to detekuje a podle toho založí svá rozhodnutí o vyrovnávání zátěže.
  4. Odmítá nesprávné požadavky.
  5. Žádný specifikovaný prohlížeč nebo webové servery.

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

Nejprve budete potřebovat scénář, abyste lépe porozuměli tomu, jak to udělat. Použiji tedy scénář, kde existují dva webové servery a jeden server brány, který potřebuje vyvážit požadavky na server brány na webové servery.


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 Gateway Server

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

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

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


yum install epel-release
yum install Pound

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


rpm –qa |grep Pound

2. Za druhé, potřebujete dva webové servery, abyste vyrovnali zátěž a zajistili, že máte jasné identifikátory, abyste mohli otestovat, jak konfigurace libry funguje správně.

Zde mám dva servery s IP adresami 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 prostřednictvím portu 8888 a webserver02 běží na 192.168.1.161 přes port 5555.

Krok 2: Konfigurace Pound Load Balancer

3. Nyní je čas provést konfiguraci. Jakmile libra úspěšně nainstalujete, vytvoří konfigurační soubor libry v /etc, konkrétně pound.cfg.

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


vi /etc/pound.cfg

Proveďte změny, jak je navrženo níže.


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 přes port 80 a požadavky HTTPS přes port 443. Pod tagem „Service“ můžete přidat libovolný počet dílčích tagů s názvem „BackEnd“. BackEnd tagy 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 zadá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 zkontrolovat. Otevřete dva webové prohlížeče a zkontrolujte, zda naše konfigurace fungují správně. Do adresního řádku zadejte IP adresu brány POUND a podívejte se, co se zobrazí.

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

Kromě toho si představte scénář, jako když máte dva webové servery pro vyvážení zatížení a výkon jednoho serveru je dobrý a výkon druhého není tak dobrý.

Takže při vyvažování zátěže mezi nimi budete muset zvážit, na který server musíte přiložit větší váhu. Pochopitelně pro server s dobrými výkonovými specifikacemi.

Chcete-li takto vyvážit zatížení, stačí přidat jeden parametr do souboru pound.cfg. Pojďme se na to podívat.

Myslím, že server 192.168.1.161:5555 je lepší server. Pak musíte na tento server odeslat více požadavků. Pod značkou „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 ji nedefinujeme, bude přiřazena výchozí hodnota 5.

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

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

Emergency Tag: Tato značka se používá k načtení serveru v případě, že jsou všechny back-end servery nefunkční. Můžete jej přidat před poslední koncovou značku pound.cfg následovně.


“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND vždy sleduje, které backend servery jsou živé a které ne. Můžeme definovat, po kolika sekundách má POUND odhlásit backend servery přidáním parametru „Alive “ v pound.cfg.

Parametr můžete použít jako „Alive 30 “ pro nastavení na 30 sekund. Libra dočasně deaktivuje backendové servery, které neodpovídají. Když říkáme, že server neodpovídá, může být mrtvý nebo nemůže v tu chvíli navázat spojení.

POUND zkontroluje deaktivovaný backend server po každém časovém období, které jste definovali v souboru pound.cfg, pro případ, že by se serveru podařilo navázat spojení, pak se POUND může vrátit k práci se serverem.

7. Démon POUND 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. prostřednictvím jediný příkaz.


Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]
  1. -c definuje cestu k vašemu soketu.
  2. -L/-l definuje posluchače vaší architektury.
  3. -S/-s definuje službu.
  4. -B/-b definuje backend servery.

Další informace naleznete v manuálových stránkách poundctl.

Doufám, že se vám tento hack bude líbit a objevíte další možnosti týkající se tohoto. Neváhejte níže komentovat jakékoli návrhy a nápady. Zůstaňte ve spojení se společností Tecmint a získejte užitečné a nejnovější návody.

Přečtěte si také: Instalace nástroje XR Crossroads Load Balancer pro webové servery