CentOS 8-ൽ Nginx-നുള്ള ലോഡ് ബാലൻസറായി HAProxy എങ്ങനെ സജ്ജീകരിക്കാം


പരമാവധി വെബ് ആപ്ലിക്കേഷൻ ലഭ്യത, സ്കേലബിളിറ്റി, ഉയർന്ന പ്രകടനം എന്നിവ ഉറപ്പാക്കുന്നതിന്, സെർവർ ക്ലസ്റ്ററിംഗും ലോഡ് ബാലൻസിംഗും പോലുള്ള ആവർത്തനത്തെ അവതരിപ്പിക്കുന്ന സാങ്കേതികവിദ്യകൾ നടപ്പിലാക്കുന്നത് ഇപ്പോൾ സാധാരണമാണ്. ഉദാഹരണത്തിന്, ഒരേ ആപ്ലിക്കേഷൻ(കൾ) പ്രവർത്തിപ്പിക്കുന്ന സെർവറുകളുടെ ഒരു ക്ലസ്റ്റർ സജ്ജീകരിക്കുക, തുടർന്ന് ട്രാഫിക്ക് വിതരണം ചെയ്യുന്നതിനായി അവയുടെ മുന്നിൽ ലോഡ് ബാലൻസർ(കൾ) വിന്യസിക്കുക.

HAProxy ഒരു ഓപ്പൺ സോഴ്uസ്, ശക്തമായ, ഉയർന്ന പ്രകടനം, വിശ്വസനീയവും സുരക്ഷിതവും വ്യാപകമായി ഉപയോഗിക്കുന്നതുമായ ഉയർന്ന ലഭ്യതയുള്ള TCP/HTTP ലോഡ് ബാലൻസറും പ്രോക്uസി സെർവറും SSL/TLS ടെർമിനേറ്ററും വളരെ ഉയർന്ന ട്രാഫിക് വെബ്uസൈറ്റുകൾക്കായി നിർമ്മിച്ചതാണ്. ലിനക്സ്, സോളാരിസ്, ഫ്രീബിഎസ്ഡി, ഓപ്പൺബിഎസ്ഡി, എഐഎക്സ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ ഇത് വിശ്വസനീയമായി പ്രവർത്തിക്കുന്നു.

NGINX വെബ് സെർവറുകളുടെ ഒരു ക്ലസ്റ്ററിലെ ട്രാഫിക് നിയന്ത്രിക്കാൻ CentOS 8-ൽ HAProxy ഉപയോഗിച്ച് ഉയർന്ന ലഭ്യതയുള്ള ഒരു സമർപ്പിത ലോഡ് ബാലൻസർ എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് ഈ ഗൈഡ് കാണിക്കുന്നു. HAProxy-യിൽ SSL/TLS അവസാനിപ്പിക്കൽ എങ്ങനെ ക്രമീകരിക്കാമെന്നും ഇത് കാണിക്കുന്നു.

ഏറ്റവും കുറഞ്ഞ CentOS 8 ഇൻസ്റ്റാളേഷനുള്ള ആകെ 4 സെർവറുകൾ.

----------- HAProxy Server Setup ----------- 
HA Proxy Server - hostname: haproxy-server.tecmint.lan; IP: 10.42.0.247
Test Site Domain: www.tecmint.lan


----------- Client Web Servers Setup ----------- 
Web Server #1 - hostname: websrv1.tecmint.lan; IP: 10.42.0.200
Web Server #2 - hostname: websrv2.tecmint.lan; IP: 10.42.0.21
Web Server #3 - hostname: websrv3.tecmint.lan; IP: 10.42.0.34

ഘട്ടം 1: ക്ലയന്റ് മെഷീനുകളിൽ Nginx HTTP സെർവർ സജ്ജീകരിക്കുന്നു

1. നിങ്ങളുടെ എല്ലാ CentOS 8 ക്ലയന്റ് മെഷീനുകളിലേക്കും ലോഗിൻ ചെയ്uത് കാണിച്ചിരിക്കുന്നതുപോലെ dnf പാക്കേജ് മാനേജർ ഉപയോഗിച്ച് Nginx വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുക.

# dnf install Nginx

2. അടുത്തതായി, Nginx സേവനം ആരംഭിക്കുക, ഇപ്പോൾ, അത് സിസ്റ്റം ബൂട്ടിൽ സ്വയമേവ ആരംഭിക്കാൻ പ്രാപ്uതമാക്കുകയും, systemctl കമാൻഡുകൾ ഉപയോഗിച്ച് അതിന്റെ സ്റ്റാറ്റസ് പരിശോധിച്ച് അത് പ്രവർത്തനക്ഷമമാണെന്ന് സ്ഥിരീകരിക്കുകയും ചെയ്യുക (എല്ലാ ക്ലയന്റ് മെഷീനുകളിലും ഇത് ചെയ്യുക).

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

3. കൂടാതെ, ഫയർവാൾഡ് സേവനം എല്ലാ ക്ലയന്റ് മെഷീനുകളിലും പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ (ഇത് നിങ്ങൾക്ക് systemctl start firewalld പ്രവർത്തിപ്പിച്ച് പരിശോധിക്കാം), ലോഡ് ബാലൻസറിൽ നിന്നുള്ള അഭ്യർത്ഥനകൾ ഫയർവാളിലൂടെ കടന്നുപോകാൻ അനുവദിക്കുന്നതിന് നിങ്ങൾ ഫയർവാൾ കോൺഫിഗറേഷനിൽ HTTP, HTTPS സേവനങ്ങൾ ചേർക്കണം. Nginx വെബ് സെർവറുകളിലേക്ക്. പുതിയ മാറ്റങ്ങൾ വരുത്തുന്നതിന് ഫയർവാൾഡ് സേവനം വീണ്ടും ലോഡുചെയ്യുക (എല്ലാ ക്ലയന്റ് മെഷീനുകളിലും ഇത് ചെയ്യുക).

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload

4. അടുത്തതായി, നിങ്ങളുടെ പ്രാദേശിക മെഷീനുകളിൽ ഒരു വെബ് ബ്രൗസർ തുറന്ന് Nginx ഇൻസ്റ്റാളേഷൻ നന്നായി പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് പരിശോധിക്കുക. നാവിഗേറ്റ് ചെയ്യാൻ ക്ലയന്റ് ഐപി ഉപയോഗിക്കുക, ഒരിക്കൽ നിങ്ങൾ Nginx ടെസ്റ്റ് പേജ് കാണുമ്പോൾ, ക്ലയന്റ് മെഷീനിൽ ഇൻസ്റ്റാൾ ചെയ്ത വെബ് സെർവർ ശരിയായി പ്രവർത്തിക്കുന്നു എന്നാണ് ഇതിനർത്ഥം.

5. അടുത്തതായി, HAProxy സജ്ജീകരണം പരീക്ഷിക്കുന്നതിനായി ഞങ്ങൾ പിന്നീട് ഉപയോഗിക്കുന്ന ക്ലയന്റ് മെഷീനുകളിൽ ടെസ്റ്റ് പേജുകൾ സൃഷ്ടിക്കേണ്ടതുണ്ട്.

----------- Web Server #1 ----------- 
# cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig
# echo "Showing site from websrv1.tecmint.lan"> /usr/share/nginx/html/index.html

----------- Web Server #2 ----------- 
# cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig
# echo "Showing site from websrv2.tecmint.lan"> /usr/share/nginx/html/index.html

----------- Web Server #3 ----------- 
# cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.orig
# echo "Showing site from websrv3.tecmint.lan"> /usr/share/nginx/html/index.html

ഘട്ടം 2: CentOS 8-ൽ HAProxy സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യുന്നു

6. ഇപ്പോൾ താഴെ പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിച്ച് HAProxy സെർവറിൽ HAProxy പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക.

# dnf install haproxy

7. അടുത്തതായി, HAProxy സേവനം ആരംഭിക്കുക, സിസ്റ്റം ബൂട്ടിൽ യാന്ത്രികമായി ആരംഭിക്കുന്നതിന് അത് പ്രവർത്തനക്ഷമമാക്കുകയും അതിന്റെ നില പരിശോധിക്കുകയും ചെയ്യുക.

# systemctl start haproxy
# systemctl enable haproxy
# systemctl status haproxy

8. ഇപ്പോൾ താഴെ പറയുന്ന കോൺഫിഗറേഷൻ ഫയൽ ഉപയോഗിച്ച് നമ്മൾ HAProxy കോൺഫിഗർ ചെയ്യും.

# vi /etc/haproxy/haproxy.cfg

കോൺഫിഗറേഷൻ ഫയൽ നാല് പ്രധാന വിഭാഗങ്ങളായി തിരിച്ചിരിക്കുന്നു.

  • ആഗോള ക്രമീകരണങ്ങൾ - പ്രോസസ്സ്-വൈഡ് പാരാമീറ്ററുകൾ സജ്ജമാക്കുന്നു.
  • ഡിഫോൾട്ടുകൾ - ഈ വിഭാഗം അതിന്റെ പ്രഖ്യാപനത്തെ തുടർന്ന് മറ്റെല്ലാ വിഭാഗങ്ങൾക്കും സ്ഥിരസ്ഥിതി പാരാമീറ്ററുകൾ സജ്ജമാക്കുന്നു.
  • frontend - ക്ലയന്റ് കണക്ഷനുകൾ സ്വീകരിക്കുന്ന ലിസണിംഗ് സോക്കറ്റുകളുടെ ഒരു കൂട്ടം ഈ വിഭാഗം വിവരിക്കുന്നു.
  • ബാക്കെൻഡ് - ഫോർവേഡ് ഇൻകമിംഗ് കണക്ഷനുകളിലേക്ക് പ്രോക്സി ബന്ധിപ്പിക്കുന്ന സെർവറുകളുടെ ഒരു കൂട്ടം ഈ വിഭാഗം വിവരിക്കുന്നു.

ആഗോള ക്രമീകരണങ്ങൾക്കും സ്ഥിരസ്ഥിതികൾക്കും കീഴിലുള്ള ഓപ്ഷനുകൾ മനസിലാക്കാൻ, HAProxy ഡോക്യുമെന്റേഷൻ (ലേഖനത്തിന്റെ അവസാനം നൽകിയിരിക്കുന്ന ലിങ്ക്) വായിക്കുക. ഈ ഗൈഡിനായി, ഞങ്ങൾ ഡിഫോൾട്ടുകൾ ഉപയോഗിക്കും.

9. ഒരിക്കൽ വിന്യസിച്ചാൽ HAProxy നിങ്ങളുടെ ഐടി ഇൻഫ്രാസ്ട്രക്ചറിൽ ഒരു പ്രധാന പങ്ക് വഹിക്കും, അതിനാൽ അതിനായി ലോഗിംഗ് കോൺഫിഗർ ചെയ്യുന്നത് അടിസ്ഥാന ആവശ്യകതയാണ്; നിങ്ങളുടെ ബാക്കെൻഡ് വെബ് സെർവറുകളിലേക്കുള്ള ഓരോ കണക്ഷനെക്കുറിച്ചും ഉൾക്കാഴ്ചകൾ ലഭിക്കാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.

ലോഗ് പാരാമീറ്റർ (ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ടിൽ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നത്) ലോഗ് സന്ദേശങ്ങൾ സ്വീകരിക്കുന്ന ഒരു ഗ്ലോബൽ സിസ്ലോഗ് സെർവർ (സെന്റോസിലെ ഡിഫോൾട്ട് rsyslog പോലെയുള്ളത്) പ്രഖ്യാപിക്കുന്നു. ഒന്നിലധികം സെർവറുകൾ ഇവിടെ പ്രഖ്യാപിക്കാനാകും.

സ്ഥിരസ്ഥിതി കോൺഫിഗറേഷൻ ലോക്കൽ ഹോസ്റ്റിലേക്ക് (127.0.0.1) പോയിന്റ് ചെയ്യുന്നു, കൂടാതെ rsyslog-ന് കീഴിലുള്ള HAProxy ലോഗ് സന്ദേശങ്ങൾ തിരിച്ചറിയാൻ ഉപയോഗിക്കുന്ന സ്ഥിരസ്ഥിതി സൗകര്യ കോഡാണ് ലോക്കൽ2.

10. അടുത്തതായി, HAProxy ലോഗ് സന്ദേശങ്ങൾ എങ്ങനെ സ്വീകരിക്കാമെന്നും പ്രോസസ്സ് ചെയ്യാമെന്നും നിങ്ങൾ rsyslog സെർവറിനോട് പറയേണ്ടതുണ്ട്. rsyslog കോൺഫിഗറേഷൻ ഫയൽ /etc/rsyslog.conf എന്നതിലേക്ക് തുറക്കുക അല്ലെങ്കിൽ /etc/rsyslog.d ഡയറക്ടറിയിൽ ഒരു പുതിയ ഫയൽ സൃഷ്ടിക്കുക, ഉദാഹരണത്തിന് /etc/rsyslog.d/haproxy.conf.

# vi /etc/rsyslog.d/haproxy.conf

ഡിഫോൾട്ട് പോർട്ട് 514-ൽ UDP ഉപയോഗിച്ച് ലോഗ് ശേഖരിക്കുന്നതിന് ഇനിപ്പറയുന്ന കോൺഫിഗറേഷൻ പകർത്തി ഒട്ടിക്കുക.

$ModLoad imudp 
$UDPServerAddress 127.0.0.1 
$UDPServerRun 514 

മുകളിലെ HAProxy കോൺഫിഗറേഷനിൽ നിർവചിച്ചിരിക്കുന്ന ഫെസിലിറ്റി കോഡാണ് ലോക്കൽ2 എന്നത് തീവ്രതയെ അടിസ്ഥാനമാക്കി രണ്ട് വ്യത്യസ്ത ലോഗ് ഫയലുകളിലേക്ക് എഴുതാൻ rsyslog-നോട് നിർദ്ദേശിക്കുന്നതിന് ഈ വരികൾ ചേർക്കുക.

local2.* 	/var/log/haproxy-traffic.log 
local2.notice 	/var/log/haproxy-admin.log

11. ഫയൽ സേവ് ചെയ്ത് ക്ലോസ് ചെയ്യുക. അടുത്തകാലത്തെ മാറ്റങ്ങൾ പ്രയോഗിക്കുന്നതിന് rsyslog സേവനം പുനരാരംഭിക്കുക.

# systemctl restart rsyslog

12. ഈ വിഭാഗത്തിൽ, ഫ്രണ്ട്-എൻഡ്, ബാക്ക്-എൻഡ് പ്രോക്സികൾ എങ്ങനെ ക്രമീകരിക്കാമെന്ന് ഞങ്ങൾ കാണിക്കും. HAProxy കോൺഫിഗറേഷൻ ഫയലിലേക്ക് തിരികെ പോയി ഡിഫോൾട്ട് ഫ്രണ്ട്-എൻഡ്, ബാക്കെൻഡ് വിഭാഗങ്ങൾ ഇനിപ്പറയുന്ന രീതിയിൽ പരിഷ്uക്കരിക്കുക. ഓരോ പാരാമീറ്ററിന്റെയും വിശദമായ വിശദീകരണത്തിലേക്ക് ഞങ്ങൾ പോകില്ല, നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും ഔദ്യോഗിക ഡോക്യുമെന്റേഷൻ റഫർ ചെയ്യാം.

ഇനിപ്പറയുന്ന കോൺഫിഗറേഷൻ HAProxy സ്ഥിതിവിവരക്കണക്ക് പേജ് നൽകുന്നതിന് ഉപയോഗിക്കുന്ന ഒരു ലിസണൽ വിഭാഗത്തെ നിർവചിക്കുന്നു. ബൈൻഡ് പാരാമീറ്റർ ഒരു ശ്രോതാവിനെ നൽകിയിരിക്കുന്ന IP വിലാസത്തിലേക്കും (* ഈ സാഹചര്യത്തിൽ എല്ലാവർക്കുമായി) പോർട്ടിലേക്കും (9000) അസൈൻ ചെയ്യുന്നു.

സ്ഥിതിവിവരക്കണക്കുകൾ പ്രവർത്തനക്ഷമമാക്കുന്ന ക്രമീകരണം സ്ഥിതിവിവരക്കണക്ക് പേജ് പ്രവർത്തനക്ഷമമാക്കുന്നു, അത് URI /stats (അതായത് http://server_ip:9000/stats) ഉപയോഗിച്ച് ആക്uസസ് ചെയ്യപ്പെടും.

പേജ് ആക്uസസ് ചെയ്യുമ്പോൾ അടിസ്ഥാന പ്രാമാണീകരണം ചേർക്കാൻ സ്ഥിതിവിവരക്കണക്ക് ക്രമീകരണം ഉപയോഗിക്കുന്നു (ഹാപ്രോക്uസിയും [ഇമെയിൽ സംരക്ഷിതവും] പകരം നിങ്ങൾക്ക് ഇഷ്ടമുള്ള ഉപയോക്തൃനാമവും പാസ്uവേഡും നൽകുക).

listen stats
    bind *:9000
    stats enable
    stats hide-version
    stats uri /stats
    stats admin if LOCALHOST
    stats auth haproxy:[email 

13. അടുത്ത കോൺഫിഗറേഷൻ TL എന്ന ഫ്രണ്ട്uഎൻഡ് വിഭാഗത്തെ നിർവചിക്കുന്നു (നിങ്ങൾക്ക് ഇഷ്ടമുള്ള ഒരു പേര് നിങ്ങൾക്ക് നൽകാം). HAProxy പ്രവർത്തിക്കുന്ന മോഡ് മോഡ് പാരാമീറ്റർ നിർവചിക്കുന്നു.

അഭ്യർത്ഥനയിൽ നിന്ന് വേർതിരിച്ചെടുത്ത ഉള്ളടക്കത്തെ അടിസ്ഥാനമാക്കി തീരുമാനമെടുക്കാൻ acl (ആക്സസ് കൺട്രോൾ ലിസ്റ്റ്) പാരാമീറ്റർ ഉപയോഗിക്കുന്നു. ഈ ഉദാഹരണത്തിൽ, അഭ്യർത്ഥന SSL മുഖേന ഉണ്ടാക്കിയില്ലെങ്കിൽ അത് പ്ലെയിൻ HTTP ആയി കണക്കാക്കും.

അഭ്യർത്ഥനയിലേക്ക് ഒരു HTTP ഹെഡർ ചേർക്കാൻ http-request set-header ക്രമീകരണം ഉപയോഗിക്കുന്നു. പ്രാരംഭ അഭ്യർത്ഥന എച്ച്ടിടിപി വഴിയാണ് (അല്ലെങ്കിൽ പോർട്ട് 80 വഴി) നടത്തിയതെന്ന് Nginx-നെ അറിയിക്കാൻ ഇത് സഹായിക്കുന്നു.

default_backend അല്ലെങ്കിൽ use_backend ഡയറക്uടീവ് ബാക്കെൻഡ് സെർവറുകളെ നിർവചിക്കുന്നു, ഈ സാഹചര്യത്തിൽ, TL_web_servers പരാമർശിക്കുന്നു.

ഒരു use_backend അല്ലെങ്കിൽ default_backend നിർദ്ദേശം വഴി ഒരു അഭ്യർത്ഥന റൂട്ട് ചെയ്തില്ലെങ്കിൽ HAProxy \503 സേവനം ലഭ്യമല്ലാത്ത പിശക് നൽകുമെന്ന് ശ്രദ്ധിക്കുക.

frontend TL
    bind *:80
    mode http
    acl http  ssl_fc,not
    http-request set-header X-Forwarded-Protocol http if http
    default_backend TL_web_servers

14. പിന്നീട് ഒരു ബാക്കെൻഡ് സെക്ഷൻ ഞങ്ങൾ നിർവചിക്കേണ്ടതുണ്ട്, അവിടെ ബാലൻസ് ക്രമീകരണം എങ്ങനെയാണ് HAProxy ബാക്ക്-എൻഡ് സെർവറുകൾ തിരഞ്ഞെടുക്കുന്നതെന്ന് നിർവചിക്കേണ്ടതുണ്ട്.

കുക്കി നിർദ്ദേശം കുക്കി അധിഷ്uഠിത സ്ഥിരത പ്രാപ്uതമാക്കുന്നു, ക്ലയന്റിലേക്ക് SERVERID എന്ന് പേരുള്ള ഒരു കുക്കി അയയ്uക്കാനും പ്രാരംഭ പ്രതികരണം നൽകിയ സെർവറിന്റെ ഐഡിയുമായി അതിനെ ബന്ധപ്പെടുത്താനും ഇത് HAProxy-യെ നിർദ്ദേശിക്കുന്നു.

sever_name (ഉദാ: websrv1), server_IP:port, ഓപ്ഷനുകൾ എന്നീ ഫോർമാറ്റിൽ അപ്uസ്ട്രീം സെർവറുകൾ നിർവചിക്കാൻ സെർവർ നിർദ്ദേശം ഉപയോഗിക്കുന്നു.

ഒരു സെർവറിന്റെ ലഭ്യത പരിശോധിച്ച് സ്ഥിതിവിവരക്കണക്ക് പേജിൽ റിപ്പോർട്ട് ചെയ്യാൻ HAProxy-യോട് പറയുന്ന ചെക്ക് ആണ് ഒരു പ്രധാന ഓപ്ഷൻ.

backend TL_web_servers
    mode http
    balance roundrobin
    option  httpchk HEAD /
    cookie SERVERUID insert indirect nocache
    server  websrv1 10.42.0.200:80 cookie websrv1 check
    server  websrv2 10.42.0.21:80  cookie websrv2 check
    server  websrv3 10.42.0.34:80  cookie websrv3 check

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

15. ഇപ്പോൾ പുതിയ മാറ്റങ്ങൾ പ്രയോഗിക്കാൻ HAProxy സേവനം പുനരാരംഭിക്കുക.

# systemctl restart haproxy

16. അടുത്തതായി, ക്ലയന്റ് അഭ്യർത്ഥനകൾ ഇനിപ്പറയുന്ന രീതിയിൽ സ്വീകരിക്കുന്നതിന് HTTP (പോർട്ട് 80), HTTPS (പോർട്ട് 433) സേവനങ്ങൾ ഫയർവാളിൽ തുറന്നിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. കൂടാതെ, സ്ഥിതിവിവരക്കണക്കുകൾ പേജ് ആക്സസ് ചെയ്യുന്നതിനായി ഫയർവാളിൽ പോർട്ട് 9000 തുറന്ന് ഫയർവാൾ ക്രമീകരണങ്ങൾ വീണ്ടും ലോഡുചെയ്യുക.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent –add-service=https
# firewall-cmd --zone=public --permanent --add-port=9000/tcp
# firewall-cmd --reload

ഘട്ടം 3: HAProxy സജ്ജീകരണവും സ്ഥിതിവിവരക്കണക്കുകളും പരിശോധിക്കുന്നു

17. ഇപ്പോൾ HAPrxoy സജ്ജീകരണം പരിശോധിക്കാനുള്ള സമയമായി. നിങ്ങൾ എല്ലാ സെർവറുകളും ആക്uസസ് ചെയ്യുന്ന ലോക്കൽ ഡെസ്uക്uടോപ്പ് മെഷീനിൽ, ഡമ്മി സൈറ്റ് ഡൊമെയ്uൻ ഉപയോഗിക്കാൻ ഞങ്ങളെ പ്രാപ്uതമാക്കുന്നതിന് /etc/hosts ഫയലിൽ ഇനിപ്പറയുന്ന വരി ചേർക്കുക.

10.42.0.247  www.tecmint.lan

18. തുടർന്ന് ഒരു ബ്രൗസർ തുറന്ന് സെർവർ വിലാസമോ സൈറ്റ് ഡൊമെയ്uനോ ഉപയോഗിച്ച് നാവിഗേറ്റ് ചെയ്യുക.

http://10.42.0.247/
OR
http://www.tecmint.lan/

19. HAProxy സ്റ്റാറ്റിസ്റ്റിക്സ് പേജ് ആക്സസ് ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന വിലാസം ഉപയോഗിക്കുക.

http://10.42.0.247:9000/stats

തുടർന്ന് HAProxy കോൺഫിഗറേഷൻ ഫയലിൽ നിങ്ങൾ നിർവചിച്ചിട്ടുള്ള ഉപയോക്തൃനാമവും പാസ്uവേഡും ഉപയോഗിക്കുക (സ്ഥിതിവിവരക്കണക്ക് ഓത്ത് പാരാമീറ്റർ കാണുക).

വിജയകരമായ ലോഗിൻ കഴിഞ്ഞ്, നിങ്ങളുടെ സെർവറുകളുടെ ആരോഗ്യം, നിലവിലെ അഭ്യർത്ഥന നിരക്കുകൾ, പ്രതികരണ സമയം എന്നിവയും മറ്റും ഉൾക്കൊള്ളുന്ന അളവുകൾ കാണിക്കുന്ന HAProxy സ്റ്റാറ്റിസ്റ്റിക്സ് പേജിൽ നിങ്ങൾ ഇറങ്ങും.

കളർ കോഡുകളുടെ പ്രവർത്തനവുമായി ബന്ധപ്പെട്ട സ്റ്റാറ്റസ് റിപ്പോർട്ട് എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് കാണിക്കാൻ, ഞങ്ങൾ ബാക്ക്-എൻഡ് സെർവറുകളിൽ ഒന്ന് ഇട്ടിട്ടുണ്ട്.

ഘട്ടം 4: സ്വയം ഒപ്പിട്ട SSL സർട്ടിഫിക്കറ്റ് ഉപയോഗിച്ച് HAProxy-യിൽ HTTPS കോൺഫിഗർ ചെയ്യുന്നു

20. ഈ അവസാന വിഭാഗത്തിൽ, HAProxy സെർവറും ക്ലയന്റും തമ്മിലുള്ള എല്ലാ ആശയവിനിമയങ്ങളും സുരക്ഷിതമാക്കാൻ SSL/TLS എങ്ങനെ കോൺഫിഗർ ചെയ്യാമെന്ന് ഞങ്ങൾ കാണിക്കും. HAProxy നാല് പ്രധാന HTTPS കോൺഫിഗറേഷൻ മോഡുകളെ പിന്തുണയ്ക്കുന്നു, എന്നാൽ ഈ ഗൈഡിനായി ഞങ്ങൾ SSL/TLS ഓഫ്uലോഡിംഗ് ഉപയോഗിക്കും.

SSL/TLS ഓഫ്uലോഡിംഗ് മോഡിൽ, HAProxy ക്ലയന്റ് സൈഡിലെ ട്രാഫിക് ഡീക്രിപ്റ്റ് ചെയ്യുകയും ബാക്കെൻഡ് സെർവറുകളിലേക്ക് വ്യക്തമായ ട്രാഫിക്കിൽ ബന്ധിപ്പിക്കുകയും ചെയ്യുന്നു.

കാണിച്ചിരിക്കുന്നതുപോലെ സർട്ടിഫിക്കറ്റും കീയും സൃഷ്ടിച്ചുകൊണ്ട് ഞങ്ങൾ ആരംഭിക്കും (സ്ക്രീൻഷോട്ടിൽ ഹൈലൈറ്റ് ചെയ്uതിരിക്കുന്നതുപോലെ, സർട്ടിഫിക്കറ്റ് സൃഷ്uടിക്കുമ്പോൾ നിങ്ങളുടെ കമ്പനി വിശദാംശങ്ങളെ അടിസ്ഥാനമാക്കി ചോദ്യങ്ങൾക്ക് ഉത്തരം നൽകുക).

# mkdir /etc/ssl/tecmint.lan
# cd /etc/ssl/tecmint.lan/
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/tecmint.lan.key -out /etc/ssl/tecmint.lan.crt
# cd /etc/ssl/tecmint.lan/
# cat tecmint.crt tecmint.key >tecmint.pem
# ls -l

21. അടുത്തതായി, HAProxy കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് (/etc/haproxy/haproxy.cfg) ഫ്രണ്ട്-എൻഡ് വിഭാഗം എഡിറ്റ് ചെയ്യുക.

frontend TL
    bind *:80
    bind *:443 ssl crt /etc/ssl/tecmint.lan/tecmint.pem
    redirect  scheme  https  if  !{ ssl_fc }
    mode http
    acl http  ssl_fc,not
    acl https ssl_fc
    http-request set-header X-Forwarded-Protocol http if http
    http-request set-header X-Forwarded-Protocol https if https
    default_backend TL_web_servers

ഫയൽ സംരക്ഷിച്ച് അത് അടയ്ക്കുക.

22. തുടർന്ന് പുതിയ മാറ്റങ്ങൾ പ്രയോഗിക്കാൻ HAProxy സേവനം പുനരാരംഭിക്കുക.

# systemctl restart haproxy.service

23. അടുത്തതായി, ഒരു വെബ് ബ്രൗസർ തുറന്ന് ഒരിക്കൽ കൂടി സൈറ്റ് ആക്സസ് ചെയ്യാൻ ശ്രമിക്കുക. സ്വയം ഒപ്പിട്ട സർട്ടിഫിക്കറ്റ് കാരണം ബ്രൗസർ ഒരു പിശക് കാണിക്കും, മുന്നോട്ട് പോകാൻ വിപുലമായത് ക്ലിക്കുചെയ്യുക.

ഇപ്പോഴത്തേക്ക് ഇത്രമാത്രം! ഓരോ വെബ് ആപ്ലിക്കേഷനും അതിന്റേതായ ആവശ്യകതകൾ ഉണ്ട്, നിങ്ങളുടെ ഐടി ഇൻഫ്രാസ്ട്രക്ചറിനും ആപ്ലിക്കേഷന്റെ ആവശ്യകതകൾക്കും അനുയോജ്യമായ രീതിയിൽ ലോഡ് ബാലൻസിങ് രൂപകൽപ്പന ചെയ്യുകയും കോൺഫിഗർ ചെയ്യുകയും വേണം.

ഈ ഗൈഡിൽ ഉപയോഗിച്ചിരിക്കുന്ന ചില കോൺഫിഗറേഷൻ ഓപ്uഷനുകളെക്കുറിച്ചും സാധാരണയായി HAProxy എങ്ങനെ ഉപയോഗിക്കാമെന്നതിനെക്കുറിച്ചും കൂടുതൽ ഉൾക്കാഴ്ചകൾ ലഭിക്കുന്നതിന്, ഔദ്യോഗിക HAProxy എന്റർപ്രൈസ് പതിപ്പ് ഡോക്യുമെന്റേഷൻ കാണുക. ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളോ ചിന്തകളോ പോസ്റ്റ് ചെയ്യാം.