CentOS تي HAProxy لوڊ بيلنس کي نصب ڪرڻ

مضمون جو ترجمو ڪورس جي شروعات جي موقعي تي تيار ڪيو ويو "لينڪس ايڊمنسٽريٽر. ورچوئلائيزيشن ۽ ڪلسٽرنگ"

CentOS تي HAProxy لوڊ بيلنس کي نصب ڪرڻ

لوڊ بيلنس هڪ عام حل آهي افقي طور تي اسڪيلنگ ويب ايپليڪيشنن لاءِ ڪيترن ئي ميزبانن ۾ جڏهن صارفين کي فراهم ڪرڻ جي هڪ واحد نقطي سان خدمت تائين رسائي. HAProxy هڪ تمام مشهور اوپن سورس لوڊ بيلنسنگ سافٽ ويئر آهي جيڪو پڻ مهيا ڪري ٿو اعلي دستيابي ۽ پراکسي ڪارڪردگي.

HAProxy ڪوشش ڪري ٿو وسيلن جي استعمال کي بهتر ڪرڻ، وڌ ۾ وڌ وڌاءُ ڪرڻ، جوابي وقت کي گھٽ ڪرڻ، ۽ ڪنهن به انفرادي وسيلن کي اوور لوڊ ڪرڻ کان پاسو ڪرڻ. اهو لينڪس جي تقسيم جي هڪ قسم تي نصب ٿي سگهي ٿو، جهڙوڪ CentOS 8، جنهن تي اسان هن گائيڊ تي ڌيان ڏينداسين، انهي سان گڏ سسٽم ديبين 8 и Ubuntu 16.

CentOS تي HAProxy لوڊ بيلنس کي نصب ڪرڻ

HAProxy خاص طور تي موزون آهي ويب سائيٽن لاءِ تمام گهڻي ٽرئفڪ سان ۽ تنهن ڪري اڪثر استعمال ڪيو ويندو آهي ڀروسو ۽ ڪارڪردگي کي بهتر ڪرڻ لاءِ ملٽي سرور ويب سروس ترتيبن جي. هي گائيڊ بيان ڪري ٿو HAProxy سيٽ اپ ڪرڻ لاءِ قدمن کي لوڊ بيلنس جي طور تي هڪ CentOS 8 ڪلائوڊ هوسٽ تي، جيڪو پوءِ توهان جي ويب سرورز ڏانهن ٽريفڪ کي روٽ ڪري ٿو.

بهترين نتيجن لاءِ هڪ شرط جي طور تي، توهان وٽ گهٽ ۾ گهٽ ٻه ويب سرور ۽ هڪ لوڊ بيلنسنگ سرور هجڻ گهرجي. ويب سرورز کي گهٽ ۾ گهٽ هڪ بنيادي ويب سروس هلائڻ لازمي آهي جهڙوڪ نينگڪس يا 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 ~/

unpacked ماخذ ڊاريڪٽري ڏانھن وڃو:

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)

اچو ته بنيادي سيٽ اپ سان شروع ڪريون. ھڪڙو نئون config فائل ٺاھيو، مثال طور استعمال ڪندي vi هيٺ ڏنل حڪم سان:

sudo vi /etc/haproxy/haproxy.cfg

فائل ۾ ھيٺيون حصا شامل ڪريو. بدلائڻ سرور_ئيٽ شماريات واري صفحي تي توهان جي سرورز کي ڇا سڏڻ گهرجي، ۽ نجي_پ - سرورز جا پرائيويٽ 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) جي وضاحت ڪري ٿو ٻاهرين طور تي http_front listening on port 80، جيڪو پوءِ ٽريفڪ کي 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 قاعدي جو اعلان ڪري ٿو جيڪو /blog سان شروع ٿيندڙ رستن سان سڀني رابطن تي لاڳو ٿئي ٿو. Use_backend وضاحت ڪري ٿو ته ڪنيڪشن ملن ٿا url_blog شرط سان ملن ٿيون blog_back نالي هڪ پس منظر طرفان، ۽ ٻيون سڀئي درخواستون ڊفالٽ پس منظر ذريعي سنڀاليون وڃن ٿيون.

پسمنظر واري پاسي، ترتيب ترتيب ڏئي ٿي سرور جا ٻه گروپ: http_back، جيئن اڳ، ۽ هڪ نئون blog_back سڏيو ويندو آهي، جيڪو مثال.com/blog سان ڪنيڪشن سنڀاليندو آهي.

سيٽنگون تبديل ڪرڻ کان پوء، فائل کي محفوظ ڪريو ۽ ھيٺ ڏنل حڪم استعمال ڪندي HAProxy کي ٻيهر شروع ڪريو.

sudo systemctl restart haproxy

جيڪڏهن توهان شروعاتي دوران ڪي ڊيڄاريندڙ يا غلطي پيغام وصول ڪندا آهيو، انهن لاء پنهنجي ترتيب جي جانچ ڪريو ۽ پڪ ڪريو ته توهان تمام ضروري فائلون ۽ فولڊر ٺاهيا آهن، پوء ٻيهر شروع ڪرڻ جي ڪوشش ڪريو.

سيٽنگ جي جانچ ڪندي

هڪ دفعو HAProxy ترتيب ڏيڻ ۽ هلائڻ بعد، برائوزر ۾ لوڊ بيلنس سرور جي عوامي IP پتي کي کوليو ۽ چيڪ ڪريو ته ڇا توهان صحيح طريقي سان پس منظر سان ڳنڍيل آهيو. stats uri parameter ۾ ترتيب ڏنل پتي تي انگ اکر جو صفحو ٺاهي ٿو.

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/

جيڪڏهن توهان وٽ گهٽ ۾ گهٽ ڪجهه قسم جا لينڊنگ صفحا آهن توهان جي پوئتي-آخر سرورز تي، توهان ڏسندا ته هر ڀيري توهان صفحي کي ٻيهر لوڊ ڪريو ٿا توهان کي مختلف ميزبان کان جواب ملي ٿو. توھان ڪوشش ڪري سگھوٿا مختلف بيلنسنگ الگورتھم ترتيبن جي سيڪشن ۾ يا چيڪ آئوٽ ڪريو مڪمل دستاويز.

نتيجو: HAProxy لوڊ بيلنس

توهان جي HAProxy لوڊ بيلنس کي ڪاميابي سان ترتيب ڏيڻ تي مبارڪون هجن! جيتوڻيڪ بنيادي لوڊ بيلنسنگ سيٽ اپ سان، توهان پنهنجي ويب ايپليڪيشن جي ڪارڪردگي ۽ دستيابي کي خاص طور تي بهتر بڻائي سگهو ٿا. هي گائيڊ صرف HAProxy سان لوڊ بيلنسنگ جو هڪ تعارف آهي، جيڪو ان کان وڌيڪ ڪرڻ جي قابل آهي جيڪو تڪڙو سيٽ اپ گائيڊ ۾ شامل ڪري سگهجي ٿو. اسان استعمال ڪرڻ جي مختلف ترتيبن سان تجربو ڪرڻ جي صلاح ڏيو ٿا وسيع دستاويزHAProxy تي دستياب آهي، ۽ پوءِ پنهنجي پيداواري ماحول لاءِ لوڊ بيلنس ڪرڻ جي منصوبابندي شروع ڪريو.

هيڊ روم سان توهان جي ويب سروس کي بچائڻ لاء ڪيترن ئي ميزبانن کي استعمال ڪندي، لوڊ بيلنس پاڻ اڃا تائين ناڪامي جو هڪ نقطو پيش ڪري سگهي ٿو. توهان ڪيترن ئي لوڊ بيلنسرز جي وچ ۾ سچل IP نصب ڪندي اعلي دستيابي کي وڌيڪ بهتر بڻائي سگهو ٿا. توھان ھن بابت اسان جي باري ۾ وڌيڪ ڳولي سگھو ٿا UpCloud تي سچل IP پتي بابت مضمون.

وڌيڪ ڪورس بابت "لينڪس ايڊمنسٽريٽر. ورچوئلائيزيشن ۽ ڪلسٽرنگ"***

جو ذريعو: www.habr.com

تبصرو شامل ڪريو