Tīmekļa serveru iestatīšana Slodzes līdzsvarošana, izmantojot POUND uz RHEL/CentOS


POUND ir uzņēmuma ITSECURITY izstrādāta slodzes līdzsvarošanas programma. Tas ir viegls atvērtā koda reversās starpniekservera rīks, kuru var izmantot kā tīmekļa servera slodzes līdzsvarotāju, lai sadalītu slodzi starp vairākiem serveriem. POUND galalietotājam sniedz vairākas priekšrocības, kas ir ļoti ērtas un veic darbu pareizi.

  1. Atbalsta virtuālos resursdatorus.
  2. konfigurējams.
  3. Ja aizmugures serveris neizdodas vai tiek atgūts pēc kļūmes, tas to automātiski nosaka un atbilstoši tam pamato lēmumus par slodzes līdzsvarošanu.
  4. Tas noraida nepareizus pieprasījumus.
  5. Nav norādīta pārlūkprogramma vai tīmekļa serveri.

Apskatīsim, kā var veikt šo uzlaušanu.

Vispirms jums būs nepieciešams scenārijs, lai labāk izprastu, kā to paveikt. Tāpēc es izmantošu scenāriju, kurā ir divi tīmekļa serveri un viens vārtejas serveris, kuram ir nepieciešams līdzsvarot pieprasījumus, tiek piegādāti vārtejas serverim tīmekļa serveriem.

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

1. darbība: instalējiet mārciņu slodzes līdzsvarotāju vārtejas serverī

1. Vienkāršākais veids, kā instalēt Pound, ir iepriekš sastādītu RPM pakotņu izmantošana, uz RedHat balstītu sadalījumu RPM varat atrast:

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

Alternatīvi, Pound var viegli instalēt no EPEL repozitorija, kā parādīts zemāk.

# yum install epel-release
# yum install Pound

Pēc mārciņas instalēšanas jūs varat pārbaudīt, vai tas ir instalēts, izsniedzot šo komandu.

# rpm –qa |grep Pound

2. Otrkārt, jums ir nepieciešami divi tīmekļa serveri, lai līdzsvarotu slodzi un pārliecinātos, ka jums ir skaidri identifikatori, lai pārbaudītu mārciņas konfigurāciju.

Šeit man ir divi serveri ar IP adresēm 172.16.1.204 un 192.168.1.161.

Lietošanas ērtībai esmu izveidojis pitonu SimpleHTTPServer, lai izveidotu tūlītēju tīmekļa serveri abos serveros. Lasiet par python SimpleHTTPServer

Manā scenārijā mans webserver01 darbojas 172.16.1.204 caur 8888 un webserver02 192.168.1.161 caur 5555 portu.

2. darbība: konfigurējiet mārciņas slodzes līdzsvarotāju

3. Tagad ir pienācis laiks veikt konfigurācijas. Kad esat veiksmīgi instalējis mārciņu, tas izveido mārciņas konfigurācijas failu mapē/etc, proti, pound.cfg .

Mums ir jārediģē servera un aizmugures informācija, lai līdzsvarotu tīmekļa serveru slodzi. Dodieties uz/etc un rediģēšanai atveriet failu pound.cfg .

# vi /etc/pound.cfg

Veiciet izmaiņas, kā ieteikts zemāk.

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

Šādi izskatās mans fails pound.cfg.

Zem tagiem “ListenHTTP” un “ListenHTTPS” jāievada instalētā servera IP adrese POUND.

Pēc noklusējuma serveris apstrādā HTTP pieprasījumus, izmantojot 80. porta un HTTPS pieprasījumus, izmantojot 443. portu. Zem taga “Pakalpojums” varat pievienot jebkādu daudzumu apakš tagu ar nosaukumu “BackEnd”. BackEnd tagos ir IP adreses un portu numuri, ar kuriem darbojas tīmekļa serveri.

Pēc pareizas rediģēšanas tagad saglabājiet failu un restartējiet pakalpojumu POUND, izsniedzot vienu no zemāk norādītajām komandām.

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

4. Tagad ir pienācis laiks pārbaudīt. Atveriet divas tīmekļa pārlūkprogrammas, lai pārbaudītu, vai mūsu konfigurācijas darbojas labi. Adreses joslā ierakstiet POUND vārtejas IP adresi un skatiet, kas parādās.

Pirmajam pieprasījumam jāielādē pirmais webserver01, bet otrajam pieprasījumam - no otra tīmekļa pārlūka - otrajam webserver02.

Turklāt padomājiet par scenāriju, piemēram, ja jums ir divi tīmekļa serveri, lai ielādētu līdzsvaru un viens no servera sniegumiem ir labs, bet citu veiktspēja nav tik laba.

Tāpēc, veicot līdzsvaru starp slodzēm, jums būs jāapsver, kuram serverim jums jāpieliek lielāks svars. Acīmredzot serverim ar labām veiktspējas specifikācijām.

Lai līdzsvarotu tādu slodzi, failā pound.cfg ir vienkārši jāpievieno viens parametrs. Apskatīsim to.

Domāju, ka serveris 192.168.1.161:5555 ir labāks serveris. Tad jums ir jāievieto vairāk pieprasījumu plūsmas uz šo serveri. Zem taga “BackEnd”, kas ir konfigurēts serverim 192.168.1.161, pirms taga End pievienojiet parametru “Prioritāte”.

Apskatiet zemāk redzamo piemēru.

Diapazons, ko mēs varam izmantot parametram “Prioritāte”, ir no 1 līdz 9. Ja mēs to nedefinējam, tiks piešķirta noklusējuma vērtība 5.

Tad slodze tiks līdzsvarota vienādi. Ja mēs definēsim prioritātes numuru, POUND biežāk ielādēs serveri ar augstāku prioritātes numuru. Tātad šajā gadījumā 192.168.1.161:5555 tiks ielādēts biežāk nekā serveris 172.16.1.204:8888.

3. solis: ārkārtas sadalījumu plānošana

Avārijas tags: šo tagu izmanto servera ielādēšanai, ja visi aizmugures serveri ir miruši. Pirms pound.cfg pēdējās beigu taga varat to pievienot šādi.

“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND vienmēr seko līdzi tam, kuri aizmugures serveri ir dzīvi un kuri nē. Mēs varam noteikt, pēc cik sekundēm POUND vajadzētu pārbaudīt aizmugures serverus, pievienojot parametru “Alive” pound.cfg.

Jūs varat izmantot parametru kā “Alive 30”, lai iestatītu to uz 30 sekundēm. Mārciņa īslaicīgi atspējos aizmugures serverus, kuri nereaģē. Kad mēs sakām, ka nereaģējošais serveris var būt miris vai tajā brīdī nevar izveidot savienojumu.

POUND pārbaudīs atspējoto aizmugures serveri pēc katra laika perioda, kuru esat definējis failā pound.cfg, ja serveris varētu izveidot savienojumu, tad POUND var atkal strādāt ar serveri.

7. POUND dēmonu apstrādās ar komandu poundctl. Tādējādi mums nav nepieciešams rediģēt failu pound.cfg, un mēs ar vienu komandu varam izdot Listner Server, BackEnd serverus un sesijas utt.

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

  1. -c nosaka ceļu uz jūsu kontaktligzdu.
  2. -L/-l nosaka jūsu arhitektūras klausītāju.
  3. -S/-s definē pakalpojumu.
  4. -B/-b definē aizmugures serverus.

Plašāku informāciju skatiet poundctl rokasgrāmatas lapās.

Ceru, ka jums patiks šis uzlaušana un atklāsit citas iespējas attiecībā uz to. Jūtieties brīvi komentēt tālāk, lai saņemtu ieteikumus un idejas. Uzturiet savienojumu ar Tecmint, lai iegūtu ērtu un jaunāko How To’s.