RHEL/CentOS-ൽ POUND ഉപയോഗിച്ച് വെബ് സെർവറുകൾ ലോഡ് ബാലൻസിംഗ് സജ്ജീകരിക്കുന്നു


ITSECURITY കമ്പനി വികസിപ്പിച്ച ഒരു ലോഡ് ബാലൻസിങ് പ്രോഗ്രാമാണ് POUND. ഇത് ഒരു കനംകുറഞ്ഞ ഓപ്പൺ സോഴ്uസ് റിവേഴ്uസ് പ്രോക്uസി ടൂളാണ്, ഇത് നിരവധി സെർവറുകൾക്കിടയിൽ ലോഡ് വിതരണം ചെയ്യുന്നതിന് വെബ്-സെർവർ ലോഡ് ബാലൻസറായി ഉപയോഗിക്കാനാകും. അന്തിമ ഉപയോക്താവിന് POUND നൽകുന്ന നിരവധി ഗുണങ്ങളുണ്ട്, അത് വളരെ സൗകര്യപ്രദവും ജോലി ശരിയായി ചെയ്യുന്നു.

  1. വെർച്വൽ ഹോസ്റ്റുകളെ പിന്തുണയ്ക്കുന്നു.
  2. കോൺഫിഗർ ചെയ്യാവുന്നത്.
  3. ഒരു ബാക്കെൻഡ് സെർവർ പരാജയപ്പെടുകയോ പരാജയത്തിൽ നിന്ന് വീണ്ടെടുക്കുകയോ ചെയ്യുമ്പോൾ, അത് സ്വയമേവ അത് കണ്ടെത്തുകയും അതിനനുസരിച്ച് അതിന്റെ ലോഡ് ബാലൻസിംഗ് തീരുമാനങ്ങൾ അടിസ്ഥാനമാക്കുകയും ചെയ്യുന്നു.
  4. ഇത് തെറ്റായ അഭ്യർത്ഥനകൾ നിരസിക്കുന്നു.
  5. നിർദ്ദിഷ്uട ബ്രൗസറോ വെബ്uസെർവറുകളോ ഇല്ല.

ഈ ഹാക്ക് എങ്ങനെ ചെയ്യാമെന്ന് നോക്കാം.

ഇത് ചെയ്യുന്നതിനെ കുറിച്ച് നന്നായി മനസ്സിലാക്കുന്നതിന് ആദ്യം നിങ്ങൾക്ക് ഒരു സാഹചര്യം ആവശ്യമാണ്. അതിനാൽ രണ്ട് വെബ്uസെർവറുകളും ഒരു ഗേറ്റ്uവേ സെർവറും ഉള്ള ഒരു സാഹചര്യം ഞാൻ ഉപയോഗിക്കും, അത് അഭ്യർത്ഥനകൾ ഗേറ്റ്uവേ സെർവറിലേക്ക് വെബ്uസെർവറുകളിലേക്ക് വരുന്നു.

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

ഘട്ടം 1: ഗേറ്റ്uവേ സെർവറിൽ പൗണ്ട് ലോഡ് ബാലൻസർ ഇൻസ്റ്റാൾ ചെയ്യുക

1. പ്രീ-കംപൈൽ ചെയ്ത RPM പാക്കേജുകൾ ഉപയോഗിക്കുന്നതാണ് പൗണ്ട് ഇൻസ്റ്റാൾ ചെയ്യാനുള്ള എളുപ്പവഴി, RedHat അടിസ്ഥാനമാക്കിയുള്ള വിതരണങ്ങൾക്കായി നിങ്ങൾക്ക് RPM-കൾ ഇവിടെ കണ്ടെത്താം:

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

പകരമായി, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ EPEL ശേഖരണത്തിൽ നിന്ന് പൗണ്ട് എളുപ്പത്തിൽ ഇൻസ്റ്റാൾ ചെയ്യാവുന്നതാണ്.

# yum install epel-release
# yum install Pound

പൗണ്ട് ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, ഈ കമാൻഡ് നൽകി ഇത് ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടോ എന്ന് നിങ്ങൾക്ക് പരിശോധിക്കാം.

# rpm –qa |grep Pound

2. രണ്ടാമതായി, ലോഡ് സന്തുലിതമാക്കാനും പൗണ്ട് കോൺഫിഗറേഷൻ നന്നായി പ്രവർത്തിക്കുന്നുണ്ടെന്ന് പരിശോധിക്കാനും നിങ്ങൾക്ക് വ്യക്തമായ ഐഡന്റിഫയറുകൾ ഉണ്ടെന്ന് ഉറപ്പാക്കാൻ നിങ്ങൾക്ക് രണ്ട് വെബ് സെർവറുകൾ ആവശ്യമാണ്.

ഇവിടെ എനിക്ക് 172.16.1.204, 192.168.1.161 എന്നീ IP വിലാസങ്ങൾ ഉള്ള രണ്ട് സെർവറുകൾ ഉണ്ട്.

ഉപയോഗത്തിന്റെ എളുപ്പത്തിനായി, രണ്ട് സെർവറുകളിലും ഒരു തൽക്ഷണ വെബ്uസെർവർ സൃഷ്uടിക്കാൻ ഞാൻ പൈത്തൺ SimpleHTTPSserver സൃഷ്uടിച്ചു. പൈത്തണിനെ കുറിച്ച് വായിക്കുക SimpleHTTPSserver

എന്റെ സാഹചര്യത്തിൽ, എന്റെ വെബ്സെർവർ01 172.16.1.204 ന് പോർട്ട് 8888 വഴിയും webserver02 പോർട്ട് 5555 വഴി 192.168.1.161-ലും പ്രവർത്തിക്കുന്നു.

ഘട്ടം 2: പൗണ്ട് ലോഡ് ബാലൻസർ കോൺഫിഗർ ചെയ്യുക

3. ഇപ്പോൾ കോൺഫിഗറേഷനുകൾ പൂർത്തിയാക്കാൻ സമയമായി. നിങ്ങൾ പൗണ്ട് വിജയകരമായി ഇൻസ്റ്റാൾ ചെയ്തുകഴിഞ്ഞാൽ, അത് /etc-ൽ പൗണ്ടിന്റെ കോൺഫിഗറേഷൻ ഫയൽ സൃഷ്ടിക്കുന്നു, അതായത് pound.cfg.

വെബ്uസെർവറുകൾക്കിടയിൽ ലോഡ് സന്തുലിതമാക്കുന്നതിന് ഞങ്ങൾ സെർവറും ബാക്കെൻഡ് വിശദാംശങ്ങളും എഡിറ്റ് ചെയ്യേണ്ടതുണ്ട്. എഡിറ്റിംഗിനായി /etc എന്നതിലേക്ക് പോയി pound.cfg ഫയൽ തുറക്കുക.

# vi /etc/pound.cfg

ചുവടെ നിർദ്ദേശിച്ചിരിക്കുന്നതുപോലെ മാറ്റങ്ങൾ വരുത്തുക.

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

എന്റെ pound.cfg ഫയൽ ഇങ്ങനെയാണ്.

\ListenHTTP, \ListenHTTPS ടാഗുകൾക്ക് കീഴിൽ, നിങ്ങൾ POUND ഇൻസ്റ്റാൾ ചെയ്ത സെർവറിന്റെ IP വിലാസം നൽകണം.

ഡിഫോൾട്ടായി ഒരു സെർവർ HTTP അഭ്യർത്ഥനകൾ പോർട്ട് 80 വഴിയും HTTPS അഭ്യർത്ഥനകൾ പോർട്ട് 443 വഴിയും കൈകാര്യം ചെയ്യുന്നു. \Service ടാഗിന് കീഴിൽ, \BackEnd എന്ന് വിളിക്കുന്ന ഏത് ഉപ ടാഗുകളും നിങ്ങൾക്ക് ചേർക്കാവുന്നതാണ്. BackEnd ടാഗുകൾ IP വിലാസങ്ങളും വെബ്uസെർവറുകൾ പ്രവർത്തിക്കുന്ന പോർട്ട് നമ്പറുകളും വഹിക്കുന്നു.

ഇപ്പോൾ ഫയൽ ശരിയായി എഡിറ്റ് ചെയ്uത ശേഷം സേവ് ചെയ്uത് താഴെയുള്ള കമാൻഡുകളിലൊന്ന് നൽകി POUND സേവനം പുനരാരംഭിക്കുക.

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

4. ഇപ്പോൾ പരിശോധിക്കാനുള്ള സമയമാണ്. ഞങ്ങളുടെ കോൺഫിഗറേഷനുകൾ നന്നായി പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കാൻ രണ്ട് വെബ് ബ്രൗസറുകൾ തുറക്കുക. വിലാസ ബാറിൽ നിങ്ങളുടെ POUND ഗേറ്റ്uവേയുടെ IP വിലാസം ടൈപ്പ് ചെയ്uത് എന്താണ് ദൃശ്യമാകുന്നതെന്ന് കാണുക.

ആദ്യ അഭ്യർത്ഥന ആദ്യ വെബ്uസെർവർ 01 ലോഡുചെയ്യണം, മറ്റ് വെബ് ബ്രൗസറിൽ നിന്നുള്ള രണ്ടാമത്തെ അഭ്യർത്ഥന രണ്ടാമത്തെ വെബ്uസെർവർ ലോഡുചെയ്യണം02.

കൂടാതെ, ബാലൻസ് ലോഡുചെയ്യാൻ നിങ്ങൾക്ക് രണ്ട് വെബ്uസെർവറുകൾ ഉണ്ടെങ്കിൽ സെർവറിന്റെ പ്രകടനം മികച്ചതും മറ്റൊന്നിന്റെ പ്രകടനം അത്ര മികച്ചതല്ലാത്തതുമായ ഒരു സാഹചര്യത്തെക്കുറിച്ച് ചിന്തിക്കുക.

അതിനാൽ അവയ്uക്കിടയിൽ ലോഡ് ബാലൻസിംഗ് ചെയ്യുമ്പോൾ, ഏത് സെർവറിനാണ് നിങ്ങൾ കൂടുതൽ ഭാരം നൽകേണ്ടതെന്ന് നിങ്ങൾ പരിഗണിക്കേണ്ടതുണ്ട്. മികച്ച പ്രകടന സവിശേഷതകളുള്ള സെർവറിനായി വ്യക്തമായും.

അത് പോലെ ലോഡ് ബാലൻസ് ചെയ്യാൻ, നിങ്ങൾ pound.cfg ഫയലിനുള്ളിൽ ഒരൊറ്റ പാരാമീറ്റർ ചേർത്താൽ മതി. നമുക്ക് അത് നോക്കാം.

സെർവർ 192.168.1.161:5555 ആണ് മികച്ച സെർവർ എന്ന് കരുതുക. അപ്പോൾ നിങ്ങൾ ആ സെർവറിലേക്ക് കൂടുതൽ അഭ്യർത്ഥനകൾ നൽകേണ്ടതുണ്ട്. 192.168.1.161 സെർവറിനായി കോൺഫിഗർ ചെയ്uതിരിക്കുന്ന \BackEnd ടാഗിന് കീഴിൽ, എൻഡ് ടാഗിന് മുമ്പായി \മുൻഗണന എന്ന പാരാമീറ്റർ ചേർക്കുക.

താഴെയുള്ള ഉദാഹരണം നോക്കുക.

\മുൻഗണന പരാമീറ്ററിനായി നമുക്ക് ഉപയോഗിക്കാനാകുന്ന ശ്രേണി 1-9-ന് ഇടയിലാണ്. ഞങ്ങൾ അത് നിർവചിക്കുന്നില്ലെങ്കിൽ, 5-ന്റെ ഡിഫോൾട്ട് മൂല്യം നൽകും.

അപ്പോൾ ലോഡ് തുല്യമായി സന്തുലിതമാകും. ഞങ്ങൾ മുൻഗണനാ നമ്പർ നിർവചിക്കുകയാണെങ്കിൽ, POUND ഉയർന്ന മുൻഗണനാ നമ്പറുള്ള സെർവറിനെ കൂടുതൽ തവണ ലോഡ് ചെയ്യും. അതിനാൽ ഈ സാഹചര്യത്തിൽ, 172.16.1.204:8888 എന്ന സെർവറിനേക്കാൾ കൂടുതൽ തവണ 192.168.1.161:5555 ലോഡ് ചെയ്യും.

ഘട്ടം 3: എമർജൻസി ബ്രേക്ക്ഡൗണുകൾ ആസൂത്രണം ചെയ്യുക

എമർജൻസി ടാഗ്: എല്ലാ ബാക്ക് എൻഡ് സെർവറുകളും ഡെഡ് ആയ സാഹചര്യത്തിൽ ഒരു സെർവർ ലോഡ് ചെയ്യാൻ ഈ ടാഗ് ഉപയോഗിക്കുന്നു. pound.cfg-ന്റെ അവസാനത്തെ അവസാന ടാഗിന് മുമ്പ് നിങ്ങൾക്ക് ഇത് ഇനിപ്പറയുന്ന രീതിയിൽ ചേർക്കാം.

“Emergency
           Address 192.168.5.10
           Port        8080
   End”

6. POUND എല്ലായ്uപ്പോഴും ഏതൊക്കെ ബാക്കെൻഡ് സെർവറുകളാണ് ജീവനുള്ളതും അല്ലാത്തതും എന്നതിന്റെ ട്രാക്ക് സൂക്ഷിക്കുക. Pound.cfg-ൽ \Alive പാരാമീറ്റർ ചേർത്ത് എത്ര സെക്കന്റുകൾക്ക് ശേഷം POUND ബാക്കെൻഡ് സെർവറുകൾ ചെക്ക്ഔട്ട് ചെയ്യണമെന്ന് നമുക്ക് നിർവ്വചിക്കാം.

നിങ്ങൾക്ക് പാരാമീറ്റർ \ലൈവ് 30 ആയി ഉപയോഗിക്കാം, ഇത് 30 സെക്കൻഡായി സജ്ജമാക്കാൻ കഴിയും. പ്രതികരിക്കാത്ത ബാക്കെൻഡ് സെർവറുകളെ പൗണ്ട് താൽക്കാലികമായി പ്രവർത്തനരഹിതമാക്കും. പ്രതികരിക്കാത്ത സെർവർ ഡെഡ് ആയിരിക്കാം അല്ലെങ്കിൽ ആ നിമിഷം ഒരു കണക്ഷൻ സ്ഥാപിക്കാൻ കഴിയില്ല.

സെർവറിന് ഒരു കണക്ഷൻ സ്ഥാപിക്കാൻ കഴിയുമെങ്കിൽ, നിങ്ങൾ pound.cfg ഫയലിൽ നിർവചിച്ചിട്ടുള്ള ഓരോ സമയ കാലയളവിനുശേഷവും പ്രവർത്തനരഹിതമാക്കിയ ബാക്കെൻഡ് സെർവർ POUND പരിശോധിക്കും, തുടർന്ന് POUND-ന് സെർവറുമായി വീണ്ടും പ്രവർത്തിക്കാൻ കഴിയും.

7. POUND ഡെമൺ poundctl കമാൻഡ് കൈകാര്യം ചെയ്യും. അത് ഉള്ളതിനാൽ, ഞങ്ങൾക്ക് pound.cfg ഫയൽ എഡിറ്റ് ചെയ്യേണ്ട ആവശ്യമില്ല, നമുക്ക് ലിസ്റ്റ്uനർ സെർവർ, ബാക്ക്uഎൻഡ് സെർവറുകൾ, സെഷനുകൾ മുതലായവ ഒരൊറ്റ കമാൻഡ് വഴി നൽകാം.

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

  1. -c നിങ്ങളുടെ സോക്കറ്റിലേക്കുള്ള പാത നിർവ്വചിക്കുന്നു.
  2. -L/-l നിങ്ങളുടെ വാസ്തുവിദ്യയുടെ ശ്രോതാവിനെ നിർവചിക്കുന്നു.
  3. -S/-s സേവനത്തെ നിർവചിക്കുന്നു.
  4. -B/-b ബാക്കെൻഡ് സെർവറുകൾ നിർവചിക്കുന്നു.

കൂടുതൽ വിവരങ്ങൾക്ക് poundctl മാൻ പേജുകൾ കാണുക.

നിങ്ങൾ ഈ ഹാക്ക് ആസ്വദിക്കുമെന്നും ഇതുമായി ബന്ധപ്പെട്ട കൂടുതൽ ഓപ്ഷനുകൾ കണ്ടെത്തുമെന്നും പ്രതീക്ഷിക്കുന്നു. എന്തെങ്കിലും നിർദ്ദേശങ്ങൾക്കും ആശയങ്ങൾക്കും താഴെ കമന്റ് ചെയ്യാൻ മടിക്കേണ്ടതില്ല. എളുപ്പമുള്ളതും ഏറ്റവും പുതിയതുമായ എങ്ങനെ ചെയ്യണമെന്നതിനായി Tecmint-മായി ബന്ധം നിലനിർത്തുക.