Weboldal keresés

Webszerverek terheléselosztásának beállítása a „POUND” használatával az RHEL/CentOS rendszeren


A POUND egy terheléselosztó program, amelyet az ITSECURITY Company fejlesztett ki. Ez egy könnyű, nyílt forráskódú fordított proxy eszköz, amely webszerver terheléselosztójaként használható a terhelés elosztására több szerver között. A POUND számos előnnyel jár a végfelhasználó számára, amelyek nagyon kényelmesek és jól végzik a munkát.

  1. Támogatja a virtuális gazdagépeket.
  2. Konfigurálható.
  3. Ha egy háttérkiszolgáló meghibásodik vagy egy hiba után helyreáll, automatikusan észleli azt, és ennek alapján hozza meg a terheléselosztási döntéseit.
  4. Elutasítja a helytelen kéréseket.
  5. Nincs meghatározott böngésző vagy webszerver.

Nézzük meg, hogyan lehet ezt a feltörést végrehajtani.

Először is szüksége lesz egy forgatókönyvre, hogy jobban megértse ennek végrehajtását. Tehát egy olyan forgatókönyvet fogok használni, amelyben két webszerver és egy átjárószerver van, amelynek egyensúlyba kell hoznia az átjárókiszolgálótól a webszerverekhez érkező kéréseket.


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

1. lépés: Telepítse a Pound Load Balancer programot a Gateway Serverre

1. A Pound telepítésének legegyszerűbb módja az előre lefordított RPM-csomagok használata. A RedHat-alapú disztribúciók RPM-jeit itt találja:

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

Alternatív megoldásként a Pound könnyen telepíthető az EPEL adattárból az alábbiak szerint.


yum install epel-release
yum install Pound

A Pound telepítése után a parancs kiadásával ellenőrizheti, hogy telepítve van-e.


rpm –qa |grep Pound

2. Másodszor, két webszerverre van szükség a terhelés kiegyensúlyozásához, és győződjön meg arról, hogy egyértelmű azonosítókkal rendelkezik, hogy tesztelje a font konfiguráció megfelelő működését.

Itt van két szerverem, amelyek IP-címe: 172.16.1.204 és 192.168.1.161.

A könnyebb használat érdekében létrehoztam a python SimpleHTTPServert, hogy azonnali webszervert hozzon létre mindkét szerveren. További információ a python SimpleHTTPServerről

Az én forgatókönyvem szerint a webserver01 a 172.16.1.204-en fut a 8888-as porton keresztül, a webserver02 pedig a on fut. >192.168.1.161 az 5555 porton keresztül.

2. lépés: A Pound Load Balancer konfigurálása

3. Most itt az ideje, hogy elvégezze a konfigurációkat. A pound sikeres telepítése után létrehozza a pound konfigurációs fájlját az /etc mappában, nevezetesen a pound.cfg-t.

Szerkesztenünk kell a szerver és a háttér adatait, hogy kiegyensúlyozzuk a terhelést a webszerverek között. Nyissa meg a /etc fájlt, és nyissa meg a pound.cfg fájlt szerkesztéshez.


vi /etc/pound.cfg

Hajtsa végre a módosításokat az alábbiak szerint.


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

Így néz ki a pound.cfg fájlom.

A „ListenHTTP” és „ListenHTTPS” címkék alatt meg kell adnia a telepített POUND-szerver IP-címét.

A szerver alapértelmezés szerint a HTTP-kéréseket a 80-as porton, a HTTPS-kéréseket pedig a 443-as porton keresztül kezeli. A „Service” címke alatt tetszőleges mennyiségű „BackEnd” alcímkét adhat hozzá. A BackEnd címkék az IP-címeket és a portszámokat viselik, amelyeken a webszerverek futnak.

Most mentse el a fájlt a helyes szerkesztés után, és indítsa újra a POUND szolgáltatást az alábbi parancsok egyikének kiadásával.


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

4. Most itt az ideje, hogy ellenőrizze. Nyisson meg két webböngészőt, és ellenőrizze, hogy konfigurációink megfelelően működnek-e. A címsorba írja be a POUND átjáró IP-címét, és nézze meg, mi jelenik meg.

Az első kérésnek be kell töltenie az első webserver01-et, a másik böngészőből érkező második kérésnek pedig a második webserver02-t.

Ezenkívül gondoljon egy olyan forgatókönyvre, mint például, ha két webszervervel rendelkezik a terheléselosztáshoz, és az egyik szerver teljesítménye jó, a másik pedig nem olyan jó.

Tehát a terheléselosztás során mérlegelnie kell, hogy melyik szerverre kell nagyobb súlyt helyeznie. Nyilvánvalóan a jó teljesítményjellemzőkkel rendelkező szerverhez.

A terhelés ilyen kiegyenlítéséhez csak egyetlen paramétert kell hozzáadnia a pound.cfg fájlhoz. Vessünk egy pillantást rá.

Úgy gondolja, hogy a 192.168.1.161:5555 szerver a jobb szerver. Ezután több kérelmet kell küldenie a szerverre. A 192.168.1.161 szerverhez konfigurált „BackEnd ” címke alatt adja hozzá a „Priority ” paramétert az End címke elé.

Nézze meg az alábbi példát.

A „Priority ” paraméterhez használható tartomány 1 és 9 között van. Ha nem adjuk meg, akkor az alapértelmezett 5 érték lesz hozzárendelve.

Ekkor a terhelés egyenletesen lesz kiegyenlítve. Ha megadjuk a prioritási számot, a POUND gyakrabban tölti be a szervert magasabb prioritású számmal. Tehát ebben az esetben a 192.168.1.161:5555 gyakrabban töltődik be, mint a 172.16.1.204:8888 szerver.

3. lépés: Vészhelyzeti leállások tervezése

Vészhelyzeti címke: Ez a címke egy szerver betöltésére szolgál, ha az összes háttérkiszolgáló halott. A következőképpen adhatja hozzá a pound.cfg utolsó End címke elé.


“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. A POUND mindig nyomon követi, hogy mely háttérkiszolgálók élnek és melyek nem. Meghatározhatjuk, hogy a POUND hány másodperc elteltével ellenőrizze a háttérkiszolgálókat az „Alive ” paraméter hozzáadásával a pound.cfg fájlban.

Használhatja a paramétert „Alive 30 ”-ként, hogy 30 másodpercre állítsa. A Pound ideiglenesen letiltja azokat a háttérkiszolgálókat, amelyek nem válaszolnak. Amikor azt mondjuk, hogy a nem válaszoló szerver halott, vagy abban a pillanatban nem tud kapcsolatot létesíteni.

A POUND ellenőrzi a letiltott háttérkiszolgálót a pound.cfg fájlban megadott minden időintervallum után arra az esetre, ha a szerver tud kapcsolatot létesíteni, akkor a POUND vissza tud dolgozni a szerverrel.

7. A POUND démont a poundctl parancs kezeli. Ennek birtokában nem kell szerkesztenünk a pound.cfg fájlt, és kiadhatunk Listner Server, BackEnd szervereket és munkameneteket stb. egyetlen parancsot.


Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]
  1. A -c a socket elérési útját határozza meg.
  2. A -L/-l határozza meg az architektúra hallgatóját.
  3. -S/-s határozza meg a szolgáltatást.
  4. A -B/-b a háttérkiszolgálókat határozza meg.

További információért tekintse meg a poundctl kézikönyvoldalakat.

Remélem, tetszeni fog ez a hack, és további lehetőségeket fedezhet fel ezzel kapcsolatban. Bármilyen javaslatért és ötletért nyugodtan írjon alább. Maradjon kapcsolatban a Tecminttel a praktikus és a legújabb Útmutatókért.

Olvassa el még: Az XR Crossroads Load Balancer telepítése webszerverekhez