Pag-set up sa Web Servers Load Balancing Gamit ang POUND sa RHEL/CentOS


Ang POUND usa ka programa sa pagbalanse sa load nga gihimo sa ITSECURITY Company. Kini usa ka gaan nga open source reverse proxy tool nga mahimong magamit ingon usa ka web-server load balancer aron maapod-apod ang load sa daghang mga server. Adunay daghang mga bentaha nga gihatag sa POUND sa katapusan nga tiggamit nga labi ka kombenyente ug husto ang trabaho.

  1. Nagsuporta sa mga virtual host.
  2. Ma-configure.
  3. Kung ang usa ka backend server napakyas o nabawi gikan sa usa ka kapakyasan, awtomatiko kini nga makit-an ug gibase ang mga desisyon sa pagbalanse sa load sumala niana.
  4. Gisalikway niini ang dili husto nga mga hangyo.
  5. Walay gipiho nga browser o webserver.

Atong tan-awon kon sa unsang paagi mahimo kini nga hack.

Una sa tanan kinahanglan nimo ang usa ka senaryo alang sa mas maayo nga pagsabut bahin sa paghimo niini. Mao nga mogamit ako usa ka senaryo diin adunay duha ka webserver ug usa ka gateway server nga kinahanglan balansehon ang mga hangyo moabut sa gateway server sa mga webserver.

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

Lakang 1: I-install ang Pound Load Balancer sa Gateway Server

1. Ang pinakasayon nga paagi sa pag-instalar sa Pound mao ang paggamit sa pre-compiled RPM packages, imong makit-an ang RPMs para sa RedHat based distributions sa:

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

Sa laing paagi, ang Pound dali nga ma-install gikan sa EPEL repository sama sa gipakita sa ubos.

# yum install epel-release
# yum install Pound

Human ma-install ang Pound, mahimo nimong masusi kung na-install ba kini pinaagi sa pag-isyu niini nga mando.

# rpm –qa |grep Pound

2. Ikaduha, kinahanglan nimo ang duha ka web-server aron mabalanse ang load ug siguruha nga aduna kay klaro nga mga identifier aron masulayan nga maayo ang pag-configure sa pound.

Dinhi ako adunay duha ka mga server nga nagdala sa mga IP address nga 172.16.1.204 ug 192.168.1.161.

Alang sa kasayon sa paggamit, naghimo ko og python SimpleHTTPServer aron makahimo og instant webserver sa duha ka server. Basaha ang bahin sa python SimpleHTTPServer

Sa akong senaryo, ang akong webserver01 nagdagan sa 172.16.1.204 pinaagi sa port 8888 ug webserver02 nga nagdagan sa 192.168.1.161 pinaagi sa port 5555.

Lakang 2: I-configure ang Pound Load Balancer

3. Karon na ang panahon sa paghimo sa mga pag-configure. Sa higayon nga malampuson nimo nga ma-install ang pound, maghimo kini og config file sa pound sa /etc, nga mao ang pound.cfg.

Kinahanglan natong usbon ang mga detalye sa server ug backend aron mabalanse ang load sa mga webserver. Adto sa /etc ug ablihi ang pound.cfg file para sa pag-edit.

# vi /etc/pound.cfg

Himoa ang mga kausaban sama sa gisugyot sa ubos.

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

Ingon niini ang hitsura sa akong pound.cfg file.

Ubos sa mga tag nga \ListenHTTP ug \ListenHTTPS, kinahanglan nimong isulod ang IP address sa server nga imong gi-install nga POUND.

Pinaagi sa default ang usa ka server nagdumala sa mga hangyo sa HTTP bisan ang port 80 ug HTTPS nga mga hangyo pinaagi sa port 443. Ubos sa tag nga \Serbisyo, mahimo nimong idugang ang bisan unsang kantidad sa mga sub tag nga gitawag nga \BackEnd. Ang mga tag sa BackEnd nagdala sa mga adres sa IP ug mga numero sa pantalan nga gipadagan sa mga webserver.

Karon i-save ang file pagkahuman sa pag-edit niini sa husto ug i-restart ang serbisyo sa POUND pinaagi sa pag-isyu sa usa sa ubos nga mga mando.

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

4. Karon na ang panahon sa pagsusi. Ablihi ang duha ka web browser aron masusi kung maayo ba ang among mga configuration. Sa address bar i-type ang IP address sa imong POUND gateway ug tan-awa kung unsa ang makita.

Ang una nga hangyo kinahanglan nga magkarga sa una nga webserver01 ug ang ikaduha nga hangyo gikan sa laing web browser kinahanglan nga magkarga sa ikaduha nga webserver02.

Dugang pa, hunahunaa ang usa ka senaryo sama sa kung ikaw adunay duha ka webserver aron ma-load ang balanse ug usa sa pasundayag sa server maayo ug ang pasundayag sa uban dili kaayo maayo.

Mao nga kung ang pagbalanse sa load sa taliwala nila, kinahanglan nimong hunahunaon kung unsang server ang kinahanglan nimo nga hatagan dugang nga gibug-aton. Dayag nga alang sa server nga adunay maayo nga mga specs sa pasundayag.

Para mabalanse ang load nga ingon niana, kinahanglan ka lang magdugang ug usa ka parameter sulod sa pound.cfg file. Atong tan-awon kini.

Hunahunaa ang server 192.168.1.161:5555 ang mas maayo nga server. Unya kinahanglan nimo nga ibutang ang daghang mga hangyo nga agay sa kana nga server. Ubos sa tag nga \BackEnd nga gi-configure para sa 192.168.1.161 server, idugang ang parameter nga \Priority sa wala pa ang End tag.

Tan-awa ang sa ubos nga pananglitan.

Ang han-ay nga atong magamit alang sa parameter nga \Priority anaa sa taliwala sa 1-9. Kung dili nato kini ipasabut, ang default nga bili sa 5 ang itudlo.

Unya ang load parehas nga balanse. Kon atong ipasabot ang Priority nga numero, ang POUND magkarga sa server og mas taas nga priority number sa mas kanunay. Mao nga sa kini nga kaso, ang 192.168.1.161:5555 ma-load nga mas kanunay kaysa sa server 172.16.1.204:8888.

Lakang 3: Pagplano sa Emergency Breakdowns

Emergency Tag: Kini nga tag gigamit sa pag-load sa usa ka server kung ang tanan nga back end server patay na. Mahimo nimong idugang kini sa dili pa ang katapusang Katapusan nga tag sa pound.cfg sama sa mosunod.

“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND kanunay nga bantayan kung unsang mga backend server ang buhi ug unsa ang dili. Atong madeterminar pagkahuman sa pila ka segundo ang POUND kinahanglan nga mag-checkout sa mga backend server pinaagi sa pagdugang sa parameter nga \Alive sa pound.cfg.

Mahimo nimong gamiton ang parameter nga \Buhi 30 para itakda kini sa 30 segundos. Ang pound temporaryo nga mag-disable sa mga backend server nga dili motubag. Kung giingon namon nga ang dili motubag nga server mahimong patay o dili makatukod og koneksyon nianang higayuna.

Susihon sa POUND ang disabled nga backend server pagkahuman sa matag yugto sa panahon nga imong gihubit sa pound.cfg file sa kaso kung ang server makahimo og koneksyon, unya ang POUND makabalik sa pagtrabaho kauban ang server.

7. POUND daemon dumalahon pinaagi sa poundctl sugo. Pinaagi sa pagbaton niana dili na namo kinahanglan nga i-edit ang pound.cfg file ug mahimo namong i-isyu ang Listner Server, BackEnd servers ug sessions ug uban pa pinaagi sa usa ka command.

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

  1. -c naghubit sa agianan paingon sa imong socket.
  2. -L/-l naghubit sa tigpaminaw sa imong arkitektura.
  3. -S/-s naghubit sa serbisyo.
  4. -B/-b naghubit sa mga backend server.

Tan-awa ang poundctl man page para sa dugang nga impormasyon.

Hinaot nga malingaw ka niini nga hack ug makadiskobre ug dugang nga mga kapilian bahin niini. Mobati nga gawasnon sa pagkomento sa ubos alang sa bisan unsang mga sugyot ug ideya. Padayon nga konektado sa Tecmint para magamit ug pinakabag-o nga How To's.