Sette opp nettservere lastbalansering ved å bruke 'POUND' på RHEL/CentOS


POUND er et lastbalanseringsprogram utviklet av ITSECURITY Company. Det er et lett åpen kildekode reverse proxy-verktøy som kan brukes som en web-server load balancer for å fordele belastningen mellom flere servere. Det er flere fordeler POUND gir sluttbrukeren som er veldig praktiske og gjør jobben riktig.

  1. Støtter virtuelle verter.
  2. Konfigurerbar.
  3. Når en backend-server mislykkes eller gjenopprettes etter en feil, oppdager den den automatisk og baserer sine lastbalanseringsbeslutninger i henhold til det.
  4. Den avviser uriktige forespørsler.
  5. Ingen spesifisert nettleser eller webservere.

La oss ta en titt på hvordan du kan få dette hacket til.

Først av alt trenger du et scenario for bedre forståelse av å få dette gjort. Så jeg vil bruke et scenario der det er to webservere og en gatewayserver som trenger å balansere forespørslene som kommer til gatewayserver til webservere.


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

Trinn 1: Installer Pound Load Balancer på Gateway Server

1. Den enkleste måten å installere Pound på er å bruke forhåndskompilerte RPM-pakker. Du kan finne RPM-er for RedHat-baserte distribusjoner på:

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

Alternativt kan Pound enkelt installeres fra EPEL-depotet som vist nedenfor.


yum install epel-release
yum install Pound

Etter at Pound er installert, kan du bekrefte om det er installert ved å gi denne kommandoen.


rpm –qa |grep Pound

2. For det andre trenger du to nettservere for å balansere belastningen og sørge for at du har klare identifikatorer for å teste pundkonfigurasjonen fungerer bra.

Her har jeg to servere som har IP-adresser 172.16.1.204 og 192.168.1.161.

For enkel bruk har jeg laget python SimpleHTTPServer for å lage en umiddelbar webserver på begge serverne. Les om python SimpleHTTPServer

I mitt scenario kjører jeg webserver01172.16.1.204 gjennom port 8888 og webserver02 kjører på 192.168.1.161 gjennom port 5555.

Trinn 2: Konfigurer Pound Load Balancer

3. Nå er det på tide å gjøre konfigurasjonene ferdige. Når du har installert pund vellykket, oppretter det pundets konfigurasjonsfil i /etc, nemlig pound.cfg.

Vi må redigere server- og backend-detaljene for å balansere belastningen mellom webserverne. Gå til /etc og åpne filen pound.cfg for redigering.


vi /etc/pound.cfg

Gjør endringene som foreslått nedenfor.


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

Slik ser pound.cfg-filen min ut.

Under taggene «ListenHTTP » og «ListenHTTPS » må du skrive inn IP-adressen til serveren du har installert POUND.

Som standard håndterer en server HTTP-forespørsler gjennom port 80 og HTTPS-forespørsler gjennom port 443. Under «Service»-taggen kan du legge til et hvilket som helst antall underkoder kalt «BackEnd ». BackEnd-tagger har IP-adressene og portnumrene som webserverne kjører på.

Lagre nå filen etter å ha redigert den riktig og start POUND-tjenesten på nytt ved å utstede en av kommandoene nedenfor.


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

4. Nå er det på tide å sjekke. Åpne to nettlesere for å sjekke om konfigurasjonene våre fungerer bra. Skriv inn POUND-gatewayens IP-adresse i adressefeltet og se hva som vises.

Første forespørsel skal laste den første webserver01 og andre forespørsel fra den andre nettleseren skal laste den andre webserver02.

Tenk videre på et scenario som hvis du har to nettjenere for å lastebalanse og en av serverens ytelse er god og den andres ytelse er ikke så god.

Så når lastbalansering blant dem, må du vurdere hvilken server du må legge mer vekt på. Tydeligvis for serveren med gode ytelsesspesifikasjoner.

For å balansere belastningen slik, må du bare legge til en enkelt parameter i pound.cfg-filen. La oss ta en titt på det.

Tror server 192.168.1.161:5555 er den bedre serveren. Da må du legge flere forespørsler til den serveren. Under «BackEnd»-taggen som er konfigurert for 192.168.1.161-serveren, legg til parameteren «Priority» før End-taggen.

Se på eksemplet nedenfor.

Området vi kan bruke for «Prioritet »-parameteren er mellom 1-9. Hvis vi ikke definerer det, vil standardverdien 5 bli tildelt.

Da vil belastningen balanseres likt. Hvis vi definerer prioritetsnummeret, vil POUND laste serveren med høyere prioritetsnummer oftere. Så i dette tilfellet vil 192.168.1.161:5555 lastes oftere enn tjeneren 172.16.1.204:8888.

Trinn 3: Planlegging av nødsammenbrudd

Emergency Tag: Denne taggen brukes til å laste en server i tilfelle alle backend-servere er døde. Du kan legge den til før den siste sluttkoden til pound.cfg som følger.


“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND holder alltid styr på hvilke backend-servere som er i live og hvilke som ikke er det. Vi kan definere etter hvor mange sekunder POUND skal sjekke ut backend-serverne ved å legge til "Alive "-parameteren i pound.cfg.

Du kan bruke parameteren som «Alive 30» for å sette den til 30 sekunder. Pound vil midlertidig deaktivere backend-serverne som ikke svarer. Når vi sier at den ikke svarer kan serveren være død eller ikke kan opprette en tilkobling i det øyeblikket.

POUND vil sjekke den deaktiverte backend-serveren etter hver tidsperiode du har definert i pound.cfg-filen i tilfelle hvis serveren kunne opprette en tilkobling, så kan POUND komme tilbake til å fungere med serveren.

7. POUND-demonen vil bli håndtert av kommandoen poundctl. Ved å ha det trenger vi ikke å redigere pound.cfg-filen, og vi kan utstede Listner Server, BackEnd-servere og økter osv. via en enkelt kommando.


Syntax: poundctl -c /path/to/socket [-L/-l] [-S/-s] [-B/-b] [-N/-n] [-H] [-X]
  1. -c definerer banen til kontakten din.
  2. -L/-l definerer lytteren til arkitekturen din.
  3. -S/-s definerer tjenesten.
  4. -B/-b definerer backend-serverne.

Se poundctl man-sider for mer informasjon.

Håper du liker dette hacket og oppdager flere alternativer angående dette. Kommenter gjerne nedenfor for forslag og ideer. Hold kontakten med Tecmint for praktiske og nyeste How To's.

Les også: Installere XR Crossroads Load Balancer for webservere