Tinklo serverių apkrovos balansavimo nustatymas naudojant POUND sistemoje RHEL/CentOS


POUND yra „ITSECURITY Company“ sukurta apkrovos balansavimo programa. Tai lengvas atvirojo kodo atvirkštinio tarpinio serverio įrankis, kuris gali būti naudojamas kaip žiniatinklio serverio apkrovos balansavimo priemonė paskirstant apkrovą keliems serveriams. Yra keli privalumai, kuriuos POUND suteikia galutiniam vartotojui, kurie yra labai patogūs ir atlieka darbą tinkamai.

  1. Palaiko virtualius kompiuterius.
  2. konfigūruojama.
  3. Kai vidinis serveris sugenda arba atkuriamas po gedimo, jis automatiškai jį aptinka ir pagal tai grindžia savo apkrovos balansavimo sprendimus.
  4. Jis atmeta neteisingas užklausas.
  5. Nėra nurodytos naršyklės ar interneto serverių.

Pažvelkime, kaip galima padaryti šį įsilaužimą.

Visų pirma jums reikės scenarijaus, kad geriau suprastumėte, kaip tai padaryti. Taigi naudosiu scenarijų, kai yra du žiniatinklio serveriai ir vienas šliuzo serveris, kuriam reikia subalansuoti užklausas, ateina į šliuzo serverį prie interneto serverių.

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

1 veiksmas: įdiekite svarų apkrovos balansavimo priemonę į šliuzo serverį

1. Lengviausias būdas įdiegti „Pound“ yra naudoti iš anksto sukompiliuotus RPM paketus, o „RedHat“ pagrindu veikiančių paskirstymų RPM galite rasti:

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

Arba „Pound“ galima lengvai įdiegti iš EPEL saugyklos, kaip parodyta žemiau.

# yum install epel-release
# yum install Pound

Įdiegę svarą, galite patikrinti, ar jis įdiegtas, išleidę šią komandą.

# rpm –qa |grep Pound

2. Antra, jums reikia dviejų interneto serverių, kad galėtumėte subalansuoti apkrovą ir įsitikinti, kad turite aiškius identifikatorius, kad patikrintumėte, ar svaro konfigūracija veikia gerai.

Čia aš turiu du serverius, turinčius IP adresus 172.16.1.204 ir 192.168.1.161.

Kad būtų patogiau naudoti, sukūriau „python SimpleHTTPServer“, kad galėčiau sukurti greitą žiniatinklio serverį abiejuose serveriuose. Skaitykite apie „python SimpleHTTPServer“

Pagal savo scenarijų turiu savo žiniatinklio serverį01, veikiantį 172.16.1.204 per 8888 prievadą, ir webserver02, veikiantį 192.168.1.161 per 5555 prievadą.

2 veiksmas: sukonfigūruokite svaro apkrovos balansavimo priemonę

3. Dabar atėjo laikas atlikti konfigūracijas. Sėkmingai įdiegę svarą, jis sukuria svaro konfigūracijos failą aplanke/etc, būtent pound.cfg .

Turime redaguoti išsamią serverio ir antrinės programos informaciją, kad subalansuotume tinklo serverių apkrovą. Eikite į/etc ir atidarykite failą pound.cfg , kad galėtumėte redaguoti.

# vi /etc/pound.cfg

Atlikite pakeitimus, kaip siūloma toliau.

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

Taip atrodo mano failas „pound.cfg“.

Po žymomis „ListenHTTP“ ir „ListenHTTPS“ turite įvesti įdiegto serverio IP adresą POUND.

Pagal numatytuosius nustatymus serveris tvarko HTTP užklausas per 80 prievado ir HTTPS užklausas per 443 prievadą. Pagal „Service“ žymą galite pridėti bet kokį kiekį žymių, vadinamų „BackEnd“. „BackEnd“ žymose yra IP adresai ir prievado numeriai, kuriais naudojasi interneto serveriai.

Dabar, tinkamai jį redagavę, išsaugokite failą ir iš naujo paleiskite „POUND“ paslaugą, pateikdami vieną iš žemiau pateiktų komandų.

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

4. Dabar atėjo laikas patikrinti. Atidarykite dvi žiniatinklio naršykles, kad patikrintumėte, ar mūsų konfigūracijos veikia gerai. Adreso juostoje įveskite POUND šliuzo IP adresą ir pažiūrėkite, kas pasirodys.

Pirmoji užklausa turėtų įkelti pirmąjį žiniatinklio serverį01, o antroji užklausa iš kitos žiniatinklio naršyklės turėtų įkelti antrąjį žiniatinklio serverį02.

Be to, pagalvokite apie scenarijų, pavyzdžiui, jei turite du interneto serverius, kad galėtumėte įkelti balansą, o vienas iš serverio yra geras, o kiti nėra tokie geri.

Taigi, subalansuodami apkrovą tarp jų, turėsite apsvarstyti, kuriam serveriui turite skirti daugiau svorio. Akivaizdu, kad serveris turi gero našumo specifikacijas.

Norėdami taip subalansuoti apkrovą, tiesiog turite pridėti vieną parametrą faile pound.cfg . Pažvelkime į tai.

Manote, kad serveris 192.168.1.161:5555 yra geresnis serveris. Tada jums reikia įdėti daugiau užklausų į tą serverį. Po žyme „BackEnd“, sukonfigūruota 192.168.1.161 serveriui, prieš pabaigos žymą pridėkite parametrą „Prioritetas“.

Pažvelkite į žemiau pateiktą pavyzdį.

Diapazonas, kurį galime naudoti parametrui „Prioritetas“, yra nuo 1 iki 9. Jei mes to neapibrėžsime, bus paskirta numatytoji vertė 5.

Tada apkrova bus subalansuota vienodai. Jei mes nustatysime prioriteto numerį, POUND dažniau įkels serverį su didesnio prioriteto numeriu. Taigi šiuo atveju 192.168.1.161:5555 bus įkeltas dažniau nei serveris 172.16.1.204:8888.

3 žingsnis: planuokite avarinius gedimus

Avarinė žyma: ši žyma naudojama serveriui įkelti, jei visi užpakaliniai serveriai yra mirę. Galite pridėti jį prieš paskutinę pound.cfg pabaigos žymę taip.

“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND visada stebi, kurie užpakaliniai serveriai yra gyvi, o kurie - ne. Mes galime nustatyti, po kiek sekundžių POUND turėtų patikrinti vidinius serverius, pridėdami parametrą „Alive“ į pound.cfg.

Parametrą galite naudoti kaip „Alive 30“, kad jį nustatytumėte į 30 sekundžių. Poundas laikinai išjungs neatsakančius serverius. Kai sakome, kad neatsakantis serveris gali būti miręs arba negali užmegzti ryšio tuo metu.

POUND patikrins išjungtą užpakalinį serverį po kiekvieno laikotarpio, kurį apibrėžėte faile pound.cfg, jei serveris galėtų užmegzti ryšį, tada POUND gali vėl pradėti dirbti su serveriu.

7. POUND demonas bus valdomas komanda poundctl. Turėdami tai, kad nereikia redaguoti failo pound.cfg, ir mes galime išduoti „Listner Server“, „BackEnd“ serverius ir sesijas ir pan. Naudodami vieną komandą.

Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]

  1. -c apibrėžia kelią į jūsų lizdą.
  2. -L/-l apibrėžia jūsų architektūros klausytoją.
  3. -S/-s apibrėžia paslaugą.
  4. -B/-b apibrėžia vidinius serverius.

Daugiau informacijos rasite poundctl žmogaus puslapiuose.

Tikiuosi, kad jums patiks šis įsilaužimas ir atrasite daugiau galimybių. Nedvejodami pakomentuokite toliau pateikdami pasiūlymų ir idėjų. Palaikykite ryšį su „Tecmint“, kad gautumėte patogų ir naujausią „How To“.