په CentOS کې د HAProxy بار بیلانسر نصب کول

د مقالې ژباړه د کورس د پیل په ماښام چمتو شوې وه "د لینکس مدیر. مجازی کول او کلستر کول"

په CentOS کې د HAProxy بار بیلانسر نصب کول

د بار توازن د ډیری کوربه توبونو په اوږدو کې د افقی ډول د ویب غوښتنلیکونو اندازه کولو لپاره یو عام حل دی پداسې حال کې چې کاروونکو ته خدمت ته د لاسرسي یو واحد نقطه چمتو کوي. HAProxy یو له خورا مشهور خلاص سرچینې بار بیلانس سافټویر دی چې د لوړ شتون او پراکسي فعالیت هم چمتو کوي.

HAProxy هڅه کوي د منابعو کارونې ته وده ورکړي، تروپوټ اعظمي کړي، د غبرګون وخت کم کړي، او د هرې انفرادي سرچینې له اندازې څخه ډډه وکړي. دا د لینکس په مختلفو توزیعونو کې نصب کیدی شي، لکه CentOS 8، کوم چې موږ به پدې لارښود کې تمرکز وکړو، او همدارنګه سیسټمونه Debian 8 и Ubuntu 16.

په CentOS کې د HAProxy بار بیلانسر نصب کول

HAProxy په ځانګړې توګه د هغو ویب پاڼو لپاره مناسب دی چې ډیر لوړ ټرافیک لري او له همدې امله ډیری وختونه د څو سرور ویب خدماتو ترتیبونو اعتبار او فعالیت ښه کولو لپاره کارول کیږي. دا لارښود په CentOS 8 کلاوډ کوربه کې د بار بیلنسر په توګه د HAProxy تنظیم کولو مرحلې په ګوته کوي ، کوم چې بیا ستاسو ویب سرورونو ته ترافیک لیږدوي.

د غوره پایلو لپاره د شرط په توګه، تاسو باید لږترلږه دوه ویب سرورونه او د بار توازن سرور ولرئ. د ویب سرورونه باید لږترلږه یو بنسټیز ویب خدمت لکه nginx یا httpd پرمخ بوځي ترڅو د دوی ترمینځ د بار توازن ازموینه وکړي.

په CentOS 8 کې د HAProxy نصب کول

ځکه چې HAProxy د ګړندۍ وده کونکي خلاصې سرچینې غوښتنلیک دی ، نو تاسو ته په معیاري CentOS ذخیره کې توزیع ممکن وروستۍ نسخه نه وي. د اوسني نسخې موندلو لپاره، لاندې کمانډ چل کړئ:

sudo yum info haproxy

HAProxy تل د غوره کولو لپاره درې باثباته نسخې چمتو کوي: دوه وروستي ملاتړ شوي نسخې او دریمه، زاړه نسخه چې لاهم مهم تازه معلومات ترلاسه کوي. تاسو کولی شئ تل د HAProxy ویب پا onه کې لیست شوي وروستي مستحکم نسخه چیک کړئ او بیا پریکړه وکړئ چې تاسو د کومې نسخې سره کار کول غواړئ.

پدې لارښود کې ، موږ به وروستی مستحکم نسخه 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 ډایرکټر ته کاپي کړئ. د فایل اجازې ایډیټ کړئ ترڅو سکریپټ چل شي، او بیا د سیسټم ډیمون بیا پیل کړئ:

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

لاندې برخې فایل ته اضافه کړئ. پر ځای server_name د احصایې په پاڼه کې ستاسو سرورونو ته څه باید ووایاست، او شخصي_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

دا د ټرانسپورټ پرت بار توازن (پرت 4) تعریفوي چې په بهر کې په پورټ 80 کې د http_front اوریدلو په نوم نومول کیږي ، کوم چې بیا د http_back په نوم ډیفالټ بیکینډ ته ترافیک لیږدوي. اضافي احصایې /haproxy?stats د احصایې پاڼې له ټاکل شوي پتې سره نښلوي.

د بار کولو مختلف الګوریتمونه.

په شاته برخه کې د سرورونو مشخص کول HAProxy ته اجازه ورکوي چې دا سرورونه د راؤنډ رابین الګوریتم مطابق د بار توازن لپاره وکاروي کله چې امکان ولري.

د انډول کولو الګوریتمونه کارول کیږي ترڅو معلومه کړي چې په پس منظر کې کوم سرور هر پیوستون ته لیږدول کیږي. دلته ځینې ګټور انتخابونه دي:

  • رانډروبین: هر سرور د خپل وزن سره سم په بدل کې کارول کیږي. دا ترټولو اسانه او غوره الګوریتم دی کله چې د سرورونو پروسس کولو وخت په مساوي ډول توزیع کیږي. دا الګوریتم متحرک دی، اجازه ورکوي چې د سرور وزن په الوتنه کې تنظیم شي.
  • Leastconn: سرور د لږو اړیکو سره غوره شوی. رانډ رابین د ورته بار سره د سرورونو ترمینځ ترسره کیږي. د دې الګوریتم کارول د اوږدې ناستې لکه LDAP، SQL، TSE، او داسې نورو لپاره سپارښتنه کیږي، مګر دا د لنډو غونډو لکه HTTP لپاره خورا مناسب ندي.
  • لومړی: لومړی سرور د شته پیوستون سلاټونو سره پیوستون ترلاسه کوي. سرورونه د ټیټ شمیري ID څخه تر لوړې پورې غوره شوي، کوم چې په فارم کې د سرور موقعیت ته ډیفالټ کوي. یوځل چې یو سرور 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 قاعده اعلانوي چې د / بلاګ سره پیل شوي لارو سره ټولو اړیکو باندې پلي کیږي. Use_backend مشخص کوي چې د url_blog حالت سره سمون لرونکي اړیکې باید د بلاګ_ بیک په نوم د بیک انډ لخوا خدمت شي، او نورې ټولې غوښتنې د ډیفالټ بیک انډ لخوا اداره کیږي.

په شاته خوا کې، ترتیب د سرورونو دوه ګروپونه تنظیموي: http_back، لکه څنګه چې مخکې، او یو نوی چې blog_back نومیږي، کوم چې د مثال.com/blog سره اړیکې اداره کوي.

د ترتیباتو بدلولو وروسته، فایل خوندي کړئ او د لاندې کمانډ په کارولو سره HAProxy بیا پیل کړئ:

sudo systemctl restart haproxy

که تاسو د پیل کولو پرمهال کوم اخطارونه یا د خطا پیغامونه ترلاسه کړئ، د دوی لپاره خپل ترتیب وګورئ او ډاډ ترلاسه کړئ چې تاسو ټول اړین فایلونه او فولډرونه جوړ کړي، بیا د بیا پیلولو هڅه وکړئ.

د تنظیم کولو ازموینه

یوځل چې HAProxy تنظیم او چل شي ، په براوزر کې د بار بیلانس سرور عامه IP پته خلاص کړئ او وګورئ چې ایا تاسو په سمه توګه د بیک انډ سره وصل یاست. په ترتیب کې د احصایې uri پیرامیټر په ټاکل شوي پته کې د احصایې پاڼه رامینځته کوي.

http://load_balancer_public_ip/haproxy?stats

کله چې تاسو د احصایې پاڼې پورته کړئ، که ستاسو ټول سرورونه شنه وښيي، نو بیا ترتیب بریالی و!

په CentOS کې د HAProxy بار بیلانسر نصب کول

د احصایې پاڼه ستاسو د ویب کوربه تعقیب لپاره ځینې ګټور معلومات لري، په شمول د پورته / ښکته وخت او د غونډو شمیر. که سرور په سور نښه شوی وي، ډاډ ترلاسه کړئ چې سرور فعال دی او تاسو کولی شئ دا د بار بیلنس ماشین څخه پینګ کړئ.

که ستاسو د بار توازن ځواب نه وي، ډاډ ترلاسه کړئ چې د 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

بیا د نوي پورټ نمبر سره د بار بیلانسر خلاص کړئ او د هغه کارن نوم او پټنوم سره لاګ ان شئ چې تاسو یې د تنظیم کولو فایل کې مشخص کړی.

http://load_balancer_public_ip:8181

ډاډ ترلاسه کړئ چې ستاسو ټول سرورونه لاهم شنه ښکاري او بیا ستاسو په براوزر کې د پورټ شمیرې پرته یوازې د بار بیلانس IP خلاص کړئ.

http://load_balancer_public_ip/

که تاسو لږترلږه په خپل شاته پای سرورونو کې د لینډینګ پا pagesې ځینې ډولونه لرئ ، نو تاسو به وګورئ چې هرکله چې تاسو پا pageه بیا پورته کوئ تاسو د مختلف کوربه لخوا ځواب ترلاسه کوئ. تاسو کولی شئ د ترتیب کولو برخه کې مختلف توازن الګوریتمونه هڅه وکړئ یا چیک کړئ بشپړ اسناد.

پایله: د HAProxy بار بیلنسر

ستاسو د HAProxy بار بیلنسر په بریالیتوب سره تنظیم کولو مبارکۍ! حتی د لومړني بار توازن تنظیم کولو سره ، تاسو کولی شئ د پام وړ ستاسو د ویب غوښتنلیک فعالیت او شتون ته وده ورکړئ. دا لارښود د HAProxy سره د بار توازن کولو لپاره یوازې پیژندنه ده ، کوم چې د هغه څه څخه ډیر څه وړتیا لري چې د ګړندي تنظیم کولو لارښود کې پوښل کیدی شي. موږ وړاندیز کوو چې د کارولو مختلف ترتیباتو سره تجربه وکړو پراخ اسناد، HAProxy ته شتون لري ، او بیا ستاسو د تولید چاپیریال لپاره د بار توازن پلان کول پیل کړئ.

د سر روم سره ستاسو د ویب خدماتو ساتلو لپاره د ډیری کوربه توب په کارولو سره ، د بار بیلانس پخپله ممکن لاهم د ناکامۍ نقطه وړاندې کړي. تاسو کولی شئ د څو بار بار بیلنسونو ترمینځ د فلوټینګ IP نصبولو سره لوړ شتون نور هم ښه کړئ. تاسو کولی شئ پدې اړه نور معلومات زموږ کې ومومئ په UpCloud کې د تیرولو IP پتې په اړه مقاله.

د کورس په اړه نور "د لینکس مدیر. مجازی کول او کلستر کول"***

سرچینه: www.habr.com

Add a comment