CentOS මත HAProxy load balancer ස්ථාපනය කිරීම

පාඨමාලා ආරම්භයට ආසන්න දිනක ලිපියේ පරිවර්තනය සකස් කරන ලදී "ලිනක්ස් පරිපාලක. අථත්යකරණය සහ පොකුරු කිරීම"

CentOS මත HAProxy load balancer ස්ථාපනය කිරීම

පූරණ තුලනය යනු පරිශීලකයින්ට සේවාවට ප්‍රවේශ වීමේ තනි ලක්ෂ්‍යයක් ලබා දෙන අතරම බහු ධාරක හරහා වෙබ් යෙදුම් තිරස්ව පරිමාණය කිරීම සඳහා පොදු විසඳුමකි. HAProxy ඉහළ ලබා ගැනීමේ හැකියාවක් සහ ප්‍රොක්සි ක්‍රියාකාරීත්වයක් ලබා දෙන වඩාත් ජනප්‍රිය විවෘත මූලාශ්‍ර පැටවුම් තුලනය කිරීමේ මෘදුකාංගයකි.

HAProxy සම්පත් භාවිතය ප්‍රශස්ත කිරීමට, ප්‍රතිදානය උපරිම කිරීමට, ප්‍රතිචාර කාලය අවම කිරීමට සහ ඕනෑම තනි සම්පතක් අධික ලෙස පැටවීමෙන් වළක්වා ගැනීමට උත්සාහ කරයි. එය CentOS 8 වැනි විවිධ Linux බෙදාහැරීම් මත ස්ථාපනය කළ හැක, අපි මෙම මාර්ගෝපදේශය තුළ මෙන්ම පද්ධති කෙරෙහි අවධානය යොමු කරමු. ඩේබියන් 8 и උබුන්ටු 16.

CentOS මත HAProxy load balancer ස්ථාපනය කිරීම

HAProxy ඉතා ඉහළ තදබදයක් ඇති වෙබ් අඩවි සඳහා විශේෂයෙන් යෝග්‍ය වන අතර එබැවින් බහු-සේවාදායක වෙබ් සේවා වින්‍යාසයන්හි විශ්වසනීයත්වය සහ ක්‍රියාකාරීත්වය වැඩි දියුණු කිරීමට බොහෝ විට භාවිතා වේ. මෙම මාර්ගෝපදේශය CentOS 8 ක්ලවුඩ් ධාරකයක පැටවුම් සමතුලිතයක් ලෙස HAProxy පිහිටුවීමේ පියවර ගෙනහැර දක්වයි, එය ඔබගේ වෙබ් සර්වර් වෙත ගමනාගමනය ගෙන යයි.

හොඳම ප්‍රතිඵල සඳහා පූර්ව අවශ්‍යතාවයක් ලෙස, ඔබට අවම වශයෙන් වෙබ් සේවාදායකයන් දෙකක් සහ බර සමතුලිත සේවාදායකයක් තිබිය යුතුය. වෙබ් සේවාදායකයන් අතර බර තුලනය පරීක්ෂා කිරීම සඳහා අවම වශයෙන් nginx හෝ httpd වැනි මූලික වෙබ් සේවාවක් ක්‍රියාත්මක විය යුතුය.

CentOS 8 මත HAProxy ස්ථාපනය කිරීම

HAProxy ශීඝ්‍රයෙන් විකාශනය වන විවෘත මූලාශ්‍ර යෙදුමක් නිසා, සම්මත CentOS ගබඩාවල ඔබට ලබා ගත හැකි බෙදාහැරීම නවතම අනුවාදය නොවිය හැක. වත්මන් අනුවාදය සොයා ගැනීමට, පහත විධානය ක්රියාත්මක කරන්න:

sudo yum info haproxy

HAProxy සෑම විටම තෝරා ගැනීමට ස්ථායී අනුවාද තුනක් සපයයි: වඩාත්ම මෑත සහය දක්වන අනුවාද දෙක සහ තවමත් විවේචනාත්මක යාවත්කාලීන ලබන තුන්වන, පැරණි අනුවාදය. ඔබට සැමවිටම HAProxy වෙබ් අඩවියේ ලැයිස්තුගත කර ඇති නවතම ස්ථාවර අනුවාදය පරීක්ෂා කර ඔබට වැඩ කිරීමට අවශ්‍ය කුමන අනුවාදයද යන්න තීරණය කළ හැක.

මෙම මාර්ගෝපදේශය තුළ, අපි මාර්ගෝපදේශය ලියන අවස්ථාවේ සම්මත ගබඩාවල තවමත් නොතිබූ නවතම ස්ථාවර අනුවාදය 2.0 ස්ථාපනය කරන්නෙමු. ඔබ එය මුල් මූලාශ්රයෙන් ස්ථාපනය කිරීමට අවශ්ය වනු ඇත. නමුත් පළමුව, ඔබ වැඩසටහන බාගත කර සම්පාදනය කිරීමට අවශ්ය කොන්දේසි සපුරා ඇත්දැයි පරීක්ෂා කරන්න.

sudo yum install gcc pcre-devel tar make -y

පහත විධානය භාවිතා කර මූලාශ්‍ර කේතය බාගන්න. ඔබට නව අනුවාදයක් තිබේදැයි පරීක්ෂා කළ හැක HAProxy බාගැනීම් පිටුව.

wget http://www.haproxy.org/download/2.0/src/haproxy-2.0.7.tar.gz -O ~/haproxy.tar.gz

බාගත කිරීම අවසන් වූ පසු, පහත විධානය භාවිතා කර ගොනු උපුටා ගන්න:

tar xzvf ~/haproxy.tar.gz -C ~/

ඇසුරුම් නොකළ මූලාශ්‍ර නාමාවලිය වෙත යන්න:

cd ~/haproxy-2.0.7

ඉන්පසු ඔබේ පද්ධතිය සඳහා වැඩසටහන සම්පාදනය කරන්න:

make TARGET=linux-glibc

අවසාන වශයෙන්, HAProxy ස්ථාපනය කරන්න:

sudo make install

HAProxy දැන් ස්ථාපනය කර ඇත, නමුත් එය වැඩ කිරීමට අමතර උපාමාරු කිහිපයක් අවශ්‍ය වේ. අපි පහත මෘදුකාංග සහ සේවා පිහිටුවීම දිගටම කරගෙන යමු.

ඔබගේ සේවාදායකය සඳහා HAProxy පිහිටුවීම

දැන් HAProxy ඇතුළත් කිරීම් සඳහා පහත නාමාවලි සහ සංඛ්‍යාලේඛන ගොනුව එක් කරන්න:

sudo mkdir -p /etc/haproxy
sudo mkdir -p /var/lib/haproxy 
sudo touch /var/lib/haproxy/stats

ද්විමය සඳහා සංකේතාත්මක සබැඳියක් සාදන්න එවිට ඔබට සාමාන්‍ය පරිශීලකයෙකු ලෙස HAProxy විධාන ක්‍රියාත්මක කළ හැක:

sudo ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

ඔබට සේවාවක් ලෙස ඔබේ පද්ධතියට ප්‍රොක්සියක් එක් කිරීමට අවශ්‍ය නම්, haproxy.init ගොනුව උදාහරණ වලින් ඔබේ /etc/init.d නාමාවලියට පිටපත් කරන්න. ස්ක්‍රිප්ට් ක්‍රියාත්මක වන පරිදි ගොනු අවසර සංස්කරණය කරන්න, ඉන්පසු systemd ඩීමන් නැවත ආරම්භ කරන්න:

sudo cp ~/haproxy-2.0.7/examples/haproxy.init /etc/init.d/haproxy
sudo chmod 755 /etc/init.d/haproxy
sudo systemctl daemon-reload

පද්ධතිය ආරම්භ වන විට සේවාව ස්වයංක්‍රීයව නැවත ආරම්භ කිරීමට ඔබ ඉඩ දිය යුතුය:

sudo chkconfig haproxy on

පහසුව සඳහා, HAProxy ධාවනය කිරීමට නව පරිශීලකයෙකු එක් කිරීම ද නිර්දේශ කෙරේ:

sudo useradd -r haproxy

මෙයින් පසු, ඔබට පහත විධානය භාවිතයෙන් නැවත ස්ථාපිත අනුවාද අංකය පරීක්ෂා කළ හැකිය:

haproxy -v
HA-Proxy version 2.0.7 2019/09/27 - https://haproxy.org/

අපගේ නඩුවේදී, ඉහත උදාහරණ ප්රතිදානයේ පෙන්වා ඇති පරිදි, අනුවාදය 2.0.7 විය යුතුය.

අවසාන වශයෙන්, CentOS 8 හි පෙරනිමි ෆයර්වෝලය මෙම ව්‍යාපෘතිය සඳහා බෙහෙවින් සීමා වේ. අවශ්‍ය සේවාවන්ට ඉඩ දීමට සහ ෆයර්වෝලය නැවත සැකසීමට පහත විධාන භාවිතා කරන්න:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload

පූරණ සමතුලිත සැකසුම

HAProxy පිහිටුවීම තරමක් සරල ක්‍රියාවලියකි. අත්‍යවශ්‍යයෙන්ම, ඔබ කළ යුත්තේ HAProxy ට එය සවන් දිය යුතු සම්බන්ධතා මොනවාද සහ ඒවා රිලේ කළ යුත්තේ කොතැනටද යන්න පැවසීමයි.

මෙය සිදු කරනු ලබන්නේ වින්‍යාස ගොනුවක් /etc/haproxy/haproxy.cfg නිර්වචන සැකසුම් සමඟ නිර්මාණය කිරීමෙනි. ඔබට HAProxy වින්‍යාස විකල්ප ගැන කියවිය හැක ලේඛන පිටුවේඔබට ඒ ගැන වැඩි විස්තර දැන ගැනීමට අවශ්‍ය නම්.

ප්‍රවාහන ස්ථරයේ පැටවීම තුලනය (ස්ථරය 4)

අපි මූලික සැකසුම සමඟ ආරම්භ කරමු. නව වින්‍යාස ගොනුවක් සාදන්න, උදාහරණයක් ලෙස භාවිතා කරන්න vi පහත විධානය සමඟ:

sudo vi /etc/haproxy/haproxy.cfg

ගොනුවට පහත කොටස් එක් කරන්න. ආදේශ කරන්න සේවාදායක නම සංඛ්‍යාලේඛන පිටුවේ ඔබගේ සේවාදායකයන් ඇමතීමට කුමක් කළ යුතුද, සහ පුද්ගලික_ip — ඔබට වෙබ් ගමනාගමනය යොමු කිරීමට අවශ්‍ය සේවාදායකයන්ගේ පුද්ගලික IP ලිපින. ඔබට පුද්ගලික IP ලිපින පරීක්ෂා කළ හැකිය UpCloud පාලන පැනලය මත සහ ටැබ් එක මත පුද්ගලික ජාලය මෙනුවේ ජාල.

global
   log /dev/log local0
   log /dev/log local1 notice
   chroot /var/lib/haproxy
   stats timeout 30s
   user haproxy
   group haproxy
   daemon

defaults
   log global
   mode http
   option httplog
   option dontlognull
   timeout connect 5000
   timeout client 50000
   timeout server 50000

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

මෙය port 4 හි http_front සවන්දීම බාහිරව නම් කරන ලද ප්‍රවාහන ස්ථර පැටවුම් සමතුලිතයක් (ස්ථරය 80) නිර්වචනය කරයි, ඉන්පසු http_back නම් පෙරනිමි පසුපෙළ වෙත ගමනාගමනය යොමු කරයි. අතිරේක සංඛ්‍යාලේඛන /haproxy?stats සංඛ්‍යාලේඛන පිටුව නිශ්චිත ලිපිනයට සම්බන්ධ කරයි.

විවිධ පැටවුම් තුලනය කිරීමේ ඇල්ගොරිතම.

පසුපෙළ කොටසෙහි සේවාදායකයන් සඳහන් කිරීම HAProxy හට හැකි විට රවුන්ඩ් රොබින් ඇල්ගොරිතමයකට අනුව පැටවුම් තුලනය සඳහා මෙම සේවාදායකයන් භාවිතා කිරීමට ඉඩ සලසයි.

බැලන්සින් ඇල්ගොරිතම භාවිතා කරනුයේ එක් එක් සම්බන්ධතාවය පසුතලයේ කුමන සේවාදායකය වෙතද යන්න තීරණය කිරීමටය. මෙන්න ප්රයෝජනවත් විකල්ප කිහිපයක්:

  • රවුන්ඩ්‍රොබින්: සෑම සේවාදායකයක්ම එහි බර අනුව භාවිතා වේ. සේවාදායකයන්ගේ සැකසුම් කාලය ඒකාකාරව බෙදා හරින විට මෙය වඩාත් සුමට හා සාධාරණ ඇල්ගොරිතම වේ. මෙම ඇල්ගොරිතම ගතික වන අතර, පියාසර කිරීමේදී සේවාදායකයේ බර සකස් කිරීමට ඉඩ සලසයි.
  • Leastconn: අඩුම සම්බන්ධතා ඇති සේවාදායකය තෝරා ඇත. එකම බරක් සහිත සේවාදායකයන් අතර රවුන්ඩ් රොබින් සිදු කෙරේ. මෙම ඇල්ගොරිතම භාවිතා කිරීම LDAP, SQL, TSE වැනි දිගු සැසි සඳහා නිර්දේශ කරනු ලැබේ, නමුත් HTTP වැනි කෙටි සැසි සඳහා එය එතරම් සුදුසු නොවේ.
  • පළමු: පවතින සම්බන්ධතා තව් සහිත පළමු සේවාදායකයට සම්බන්ධතාවය ලැබේ. සේවාදායකයන් ගොවිපල තුළ සේවාදායකයේ ස්ථානයට පෙරනිමියෙන් අඩුම සංඛ්‍යාත්මක හැඳුනුම්පතේ සිට ඉහළම දක්වා තෝරා ගනු ලැබේ. සේවාදායකයක් maxconn වෙත ළඟා වූ පසු, ඊළඟ සේවාදායකය භාවිතා වේ.
  • මූලාශ්රය: ඉල්ලීම ලැබෙන්නේ කුමන සේවාදායකයටද යන්න තීරණය කිරීම සඳහා මූලාශ්‍ර IP ලිපිනය හැෂ් කර ක්‍රියාත්මක වන සේවාදායකවල සම්පූර්ණ බරින් බෙදනු ලැබේ. මේ ආකාරයට, එකම සේවාදායක IP ලිපිනය සෑම විටම එකම සේවාදායකය වෙත යන අතර, සේවාදායකයන් එලෙසම පවතී.

යෙදුම් මට්ටමින් බර තුලනය සැකසීම (ස්ථරය 7)

පවතින තවත් විකල්පයක් නම්, යෙදුම් ස්තරය (ස්ථරය 7) මත ධාවනය වන පරිදි පැටවුම් සමතුලිතයක් වින්‍යාස කිරීමයි, එය ඔබගේ වෙබ් යෙදුමේ කොටස් විවිධ ධාරක මත පිහිටා ඇති විට ප්‍රයෝජනවත් වේ. සම්බන්ධතාවය සම්ප්‍රේෂණය කිරීම මගින් මෙය සාක්ෂාත් කර ගත හැක, උදාහරණයක් ලෙස URL මගින්.

පෙළ සංස්කාරකයක් භාවිතයෙන් HAProxy වින්‍යාස ගොනුව විවෘත කරන්න:

sudo vi /etc/haproxy/haproxy.cfg

ඉන්පසු පහත උදාහරණය අනුව ඉදිරිපස සහ පසුපෙළ කොටස් වින්‍යාස කරන්න:

frontend http_front
   bind *:80
   stats uri /haproxy?stats
   acl url_blog path_beg /blog
   use_backend blog_back if url_blog
   default_backend http_back

backend http_back
   balance roundrobin
   server server_name1 private_ip1:80 check
   server server_name2 private_ip2:80 check

backend blog_back
   server server_name3 private_ip3:80 check

ඉදිරිපස කොටස url_blog ලෙස හැඳින්වෙන ACL රීතියක් ප්‍රකාශ කරයි, එය /blog සමඟ ආරම්භ වන මාර්ග සමඟ සියලු සම්බන්ධතා සඳහා අදාළ වේ. Use_backend සඳහන් කරන්නේ url_blog තත්ත්වයට ගැළපෙන සම්බන්ධතා blog_back නම් පසු අන්තයක් මඟින් සැපයිය යුතු බවත්, අනෙකුත් සියලුම ඉල්ලීම් පෙරනිමි පසු අන්තය මඟින් හසුරුවන බවත්ය.

පසුපෙළ පැත්තේ, වින්‍යාසය මඟින් සේවාදායක කණ්ඩායම් දෙකක් සකසයි: http_back, පෙර පරිදි, සහ blog_back නමින් නව එකක්, එය example.com/blog වෙත සම්බන්ධතා හසුරුවයි.

සැකසුම් වෙනස් කිරීමෙන් පසු, ගොනුව සුරකින්න සහ පහත විධානය භාවිතා කර HAProxy නැවත ආරම්භ කරන්න:

sudo systemctl restart haproxy

ආරම්භයේදී ඔබට කිසියම් අනතුරු ඇඟවීමක් හෝ දෝෂ පණිවිඩයක් ලැබුනේ නම්, ඒවා සඳහා ඔබගේ වින්‍යාසය පරීක්ෂා කර ඔබ අවශ්‍ය සියලුම ගොනු සහ ෆෝල්ඩර සාදා ඇති බවට වග බලා ගන්න, ඉන්පසු නැවත ආරම්භ කිරීමට උත්සාහ කරන්න.

සැකසුම පරීක්ෂා කිරීම

HAProxy වින්‍යාස කර ක්‍රියාත්මක වූ පසු, බ්‍රවුසරයක load balancer සේවාදායකයේ පොදු IP ලිපිනය විවෘත කර ඔබ නිවැරදිව පසුබිමට සම්බන්ධ වී ඇත්දැයි පරීක්ෂා කරන්න. වින්‍යාසය තුළ ඇති සංඛ්‍යාලේඛන uri පරාමිතිය නිශ්චිත ලිපිනයෙහි සංඛ්‍යාලේඛන පිටුවක් නිර්මාණය කරයි.

http://load_balancer_public_ip/haproxy?stats

ඔබ සංඛ්‍යාලේඛන පිටුව පූරණය කරන විට, ඔබගේ සියලුම සේවාදායකයන් කොළ පැහැයෙන් පෙන්වන්නේ නම්, සැකසුම සාර්ථක විය!

CentOS මත HAProxy load balancer ස්ථාපනය කිරීම

සංඛ්‍යාලේඛන පිටුවෙහි ඉහළ/පහළ වේලාවන් සහ සැසි ගණන ඇතුළුව ඔබේ වෙබ් සත්කාරක ලුහුබැඳීම සඳහා ප්‍රයෝජනවත් තොරතුරු කිහිපයක් අඩංගු වේ. සේවාදායකය රතු ලෙස සලකුණු කර ඇත්නම්, සේවාදායකය සක්‍රිය කර ඇති බවත් ඔබට එය load balancer යන්ත්‍රයෙන් ping කළ හැකි බවත් සහතික කර ගන්න.

ඔබගේ පැටවුම් සමතුලිතකය ප්‍රතිචාර නොදක්වන්නේ නම්, HTTP සම්බන්ධතා ෆයර්වෝලයකින් අවහිර නොවන බවට වග බලා ගන්න. පහත විධානය භාවිතා කර HAProxy ක්‍රියා කරන බවටද වග බලා ගන්න:

sudo systemctl status haproxy

මුරපදයකින් සංඛ්‍යාලේඛන පිටුව ආරක්ෂා කිරීම

කෙසේ වෙතත්, සංඛ්‍යාලේඛන පිටුව හුදෙක් ඉදිරිපස කෙළවරේ ලැයිස්තුගත කර ඇත්නම්, එය සෑම කෙනෙකුටම බැලීමට විවෘතව ඇත, එය හොඳ අදහසක් නොවිය හැකිය. ඒ වෙනුවට, ඔබගේ haproxy.cfg ගොනුවේ අවසානයට පහත උදාහරණය එක් කිරීමෙන් ඔබට එයට අභිරුචි තොට අංකයක් පැවරිය හැක. ආදේශ කරන්න පරිශීලක නාමය и මුරපදය ආරක්ෂිත දෙයක් සඳහා:

listen stats
   bind *:8181
   stats enable
   stats uri /
   stats realm Haproxy Statistics
   stats auth username:password

නව සවන්දෙන්නන් කණ්ඩායමක් එක් කිරීමෙන් පසු, ඉදිරිපස කණ්ඩායමෙන් පැරණි සංඛ්‍යාලේඛන uri සබැඳිය ඉවත් කරන්න. අවසන් වූ පසු, ගොනුව සුරකින්න සහ HAProxy නැවත ආරම්භ කරන්න.

sudo systemctl restart haproxy

ඉන්පසු නව වරාය අංකය සමඟ නැවත load balancer එක විවෘත කර ඔබ වින්‍යාස ගොනුවේ සඳහන් කර ඇති පරිශීලක නාමය සහ මුරපදය සමඟ ලොග් වන්න.

http://load_balancer_public_ip:8181

ඔබගේ සියලුම සේවාදායකයන් තවමත් කොළ පැහැයෙන් පෙන්වන බවට වග බලා ගන්න සහ ඔබගේ බ්‍රවුසරයේ තොට අංක නොමැතිව load balancer IP පමණක් විවෘත කරන්න.

http://load_balancer_public_ip/

ඔබට ඔබගේ පසු අන්ත සේවාදායකයේ අවම වශයෙන් විවිධ ගොඩබෑමේ පිටු තිබේ නම්, ඔබ පිටුව නැවත පූරණය කරන සෑම අවස්ථාවකම ඔබට වෙනත් සත්කාරකයෙකුගෙන් ප්‍රතිචාරයක් ලැබෙන බව ඔබට පෙනෙනු ඇත. ඔබට වින්‍යාස කිරීමේ කොටසේ විවිධ සමතුලිත ඇල්ගොරිතම උත්සාහ කළ හැකිය, නැතහොත් පරීක්ෂා කරන්න සම්පූර්ණ ලියකියවිලි.

නිගමනය: HAProxy Load Balancer

ඔබගේ HAProxy load balancer සාර්ථකව පිහිටුවීම ගැන සුභ පැතුම්! මූලික පැටවුම් සමතුලිත සැකසුමකින් වුවද, ඔබට ඔබේ වෙබ් යෙදුමේ කාර්ය සාධනය සහ පවතින බව සැලකිය යුතු ලෙස වැඩිදියුණු කළ හැක. මෙම මාර්ගෝපදේශය HAProxy සමඟ පූරණය සමතුලිත කිරීම සඳහා හැඳින්වීමක් පමණි, එය ඉක්මන් සැකසුම් මාර්ගෝපදේශය තුළ ආවරණය කළ හැකි දේට වඩා බොහෝ දේ කළ හැකිය. භාවිතා කරමින් විවිධ වින්‍යාසයන් සමඟ අත්හදා බැලීමට අපි නිර්දේශ කරමු පුළුල් ලියකියවිලි, HAProxy වෙත ලබා ගත හැකි අතර, පසුව ඔබේ නිෂ්පාදන පරිසරය සඳහා බර තුලනය සැලසුම් කිරීම ආරම්භ කරන්න.

ඔබගේ වෙබ් සේවාව හෙඩ් රූම් සමඟින් ආරක්ෂා කිරීමට බහු ධාරක භාවිතා කිරීමෙන්, load balancer විසින්ම තවමත් අසාර්ථක වීමේ ලක්ෂ්‍යයක් ඉදිරිපත් කළ හැක. බහු ලෝඩ් බැලන්සර් අතර පාවෙන IP එකක් ස්ථාපනය කිරීමෙන් ඔබට ඉහළ ලබා ගැනීමේ හැකියාව තවදුරටත් වැඩිදියුණු කළ හැක. ඔබට මේ ගැන වැඩි විස්තර අපගේ වෙබ් අඩවියෙන් සොයාගත හැකිය UpCloud හි පාවෙන IP ලිපින පිළිබඳ ලිපිය.

පාඨමාලාව ගැන වැඩි විස්තර "ලිනක්ස් පරිපාලක. අථත්යකරණය සහ පොකුරු කිරීම"***

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න