Opsætning af webservere Load Balancing ved hjælp af POUND på RHEL/CentOS


POUND er et belastningsafbalanceringsprogram udviklet af ITSECURITY Company. Det er et let open source-omvendt proxyværktøj, som kan bruges som en webserver-belastningsafbalancering til at distribuere belastning på flere servere. Der er flere fordele, som POUND giver slutbrugeren, som er meget praktiske og gør jobbet rigtigt.

  1. Understøtter virtuelle værter.
  2. Kan konfigureres.
  3. Når en backend-server mislykkes eller gendannes efter en fiasko, registrerer den automatisk den og baserer sine beslutninger om belastningsafbalancering i henhold til det.
  4. Den afviser forkerte anmodninger.
  5. Ingen specificeret browser eller webservere.

Lad os se på, hvordan vi kan få dette hack gjort.

Først og fremmest skal du bruge et scenario for bedre forståelse af at få dette gjort. Så jeg vil bruge et scenarie, hvor der er to webservere og en gateway-server, der skal balancere anmodningerne, kommer til gateway-server til webservere.

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

Trin 1: Installer Pound Load Balancer på Gateway Server

1. Den nemmeste måde at installere Pound på er at bruge præ-kompilerede RPM-pakker. Du kan finde RPM'er til RedHat-baserede distributioner på:

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

Alternativt kan Pound let installeres fra EPEL-arkivet som vist nedenfor.

# yum install epel-release
# yum install Pound

Når Pound er installeret, kan du kontrollere, om det er installeret, ved at udstede denne kommando.

# rpm –qa |grep Pound

2. For det andet har du brug for to webservere for at afbalancere belastningen og sikre dig, at du har klare identifikatorer for at teste pundkonfigurationen fungerer fint.

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

For nemheds skyld har jeg oprettet python SimpleHTTPServer for at oprette en øjeblikkelig webserver på begge servere. Læs om python SimpleHTTPServer

I mit scenarie kører min webserver01 den 172.16.1.204 gennem port 8888 og webserver02 kører den 192.168.1.161 gennem port 5555.

Trin 2: Konfigurer pundbelastningsafbalancering

3. Nu er det tid til at foretage konfigurationerne. Når du har installeret pund med succes, opretter det pundets konfigurationsfil i/etc, nemlig pound.cfg .

Vi er nødt til at redigere serveren og backend-detaljerne for at afbalancere belastningen blandt webserverne. Gå til/etc, og åbn pound.cfg fil til redigering.

# vi /etc/pound.cfg

Foretag ændringerne som foreslået 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

Sådan ser min pound.cfg-fil ud.

Under tags "ListenHTTP" og "ListenHTTPS" skal du indtaste IP-adressen på den server, du har installeret POUND.

Som standard håndterer en server HTTP-anmodninger gennem port 80 og HTTPS-anmodninger gennem port 443. Under “Service” -tagget kan du tilføje en hvilken som helst mængde sub-tags kaldet “BackEnd”. BackEnd-tags bærer IP-adresserne og de portnumre, som webserverne kører på.

Gem nu filen, når du har redigeret den korrekt, og genstart POUND-tjenesten ved at udstede en af nedenstående kommandoer.

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

4. Nu er det tid til at tjekke. Åbn to webbrowsere for at kontrollere, om vores konfigurationer fungerer fint. Skriv din POUND-gateways IP-adresse i adresselinjen og se, hvad der vises.

Første anmodning skal indlæse den første webserver01 og anden anmodning fra den anden webbrowser skal indlæse den anden webserver02.

Tænk desuden på et scenario som hvis du har to webservere til at indlæse balance, og en af serverens ydeevne er god, og andres ydeevne er ikke så god.

Så når belastningsafbalancering blandt dem bliver du nødt til at overveje, hvilken server du skal lægge mere vægt på. Naturligvis for serveren med gode ydeevne specifikationer.

For at afbalancere belastningen sådan skal du bare tilføje en enkelt parameter inde i pound.cfg -filen. Lad os se på det.

Tænk server 192.168.1.161:5555 er den bedre server. Derefter skal du sætte flere anmodninger til denne server. Under "BackEnd" -tagget, der er konfigureret til 192.168.1.161-serveren, skal du tilføje parameteren "Prioritet" før sluttagget.

Se eksemplet nedenfor.

Det interval, vi kan bruge til parameteren "Prioritet", er mellem 1-9. Hvis vi ikke definerer det, tildeles standardværdien 5.

Derefter balanceres belastningen ens. Hvis vi definerer prioritetsnummeret, indlæser POUND oftere serveren med højere prioritetsnummer. Så i dette tilfælde indlæses 192.168.1.161:5555 oftere end serveren 172.16.1.204:8888.

Trin 3: Planlægning af nødstop

Nødmærke: Dette mærke bruges til at indlæse en server, hvis alle back-end-serverne er døde. Du kan tilføje det før det sidste slut-tag på pound.cfg som følger.

“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND holder altid styr på, hvilke backend-servere der er i live, og hvilke der ikke er. Vi kan definere, hvor mange sekunder POUND skal tjekke backend-serverne ved at tilføje "Alive" -parameteren i pound.cfg.

Du kan bruge parameteren som “Alive 30” for at indstille den til 30 sekunder. Pound vil midlertidigt deaktivere backend-serverne, som ikke reagerer. Når vi siger, at den ikke reagerer, kan serveren være død eller ikke oprette forbindelse i det øjeblik.

POUND kontrollerer den deaktiverede backend-server efter hver tidsperiode, du har defineret i pound.cfg-filen, hvis serveren kunne oprette en forbindelse, så kan POUND komme tilbage til at arbejde med serveren.

7. POUND-dæmonen håndteres af poundctl-kommandoen. Ved at have det behøver vi ikke redigere pound.cfg-filen, og vi kan udstede Listner Server, BackEnd-servere og sessioner osv. Via en enkelt kommando.

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

  1. -c definerer sti til din stikkontakt.
  2. -L/-l definerer lytteren til din arkitektur.
  3. -S/-s definerer tjenesten.
  4. -B/-b definerer backend-serverne.

Se poundctl man-sider for mere information.

Håber du nyder dette hack og opdager flere muligheder vedrørende dette. Du er velkommen til at kommentere nedenfor for eventuelle forslag og ideer. Hold kontakten med Tecmint for praktiske og nyeste vejledninger.