مضمون جو ترجمو ڪورس جي شروعات جي موقعي تي تيار ڪيو ويو
لوڊ بيلنس هڪ عام حل آهي افقي طور تي اسڪيلنگ ويب ايپليڪيشنن لاءِ ڪيترن ئي ميزبانن ۾ جڏهن صارفين کي فراهم ڪرڻ جي هڪ واحد نقطي سان خدمت تائين رسائي.
HAProxy ڪوشش ڪري ٿو وسيلن جي استعمال کي بهتر ڪرڻ، وڌ ۾ وڌ وڌاءُ ڪرڻ، جوابي وقت کي گھٽ ڪرڻ، ۽ ڪنهن به انفرادي وسيلن کي اوور لوڊ ڪرڻ کان پاسو ڪرڻ. اهو لينڪس جي تقسيم جي هڪ قسم تي نصب ٿي سگهي ٿو، جهڙوڪ CentOS 8، جنهن تي اسان هن گائيڊ تي ڌيان ڏينداسين، انهي سان گڏ سسٽم
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
ھيٺ ڏنل حڪم استعمال ڪندي سورس ڪوڊ ڊائون لوڊ ڪريو. توھان چيڪ ڪري سگھوٿا ته ڇا ھڪڙو نئون نسخو موجود آھي
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 پتي
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
جڏهن توهان لوڊ ڪريو شماريات جو صفحو، جيڪڏهن توهان جا سڀئي سرور سائي ڏيکاري، پوء سيٽ اپ ڪامياب ٿي ويو!
انگن اکرن واري صفحي ۾ ڪجھ مفيد معلومات شامل آھي توھان جي ويب ھوسٽن کي ٽريڪ ڪرڻ لاءِ، بشمول مٿي / ھيٺ وقت ۽ سيشن جو تعداد. جيڪڏھن سرور کي ڳاڙھو نشان لڳايو ويو آھي، پڪ ڪريو ته سرور آن آھي ۽ توھان ان کي لوڊ بيلنس مشين مان پنگ ڪري سگھو ٿا.
جيڪڏهن توهان جو لوڊ بيلنس جواب نه ڏئي رهيو آهي، پڪ ڪريو ته 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 سان لوڊ بيلنسنگ جو هڪ تعارف آهي، جيڪو ان کان وڌيڪ ڪرڻ جي قابل آهي جيڪو تڪڙو سيٽ اپ گائيڊ ۾ شامل ڪري سگهجي ٿو. اسان استعمال ڪرڻ جي مختلف ترتيبن سان تجربو ڪرڻ جي صلاح ڏيو ٿا
هيڊ روم سان توهان جي ويب سروس کي بچائڻ لاء ڪيترن ئي ميزبانن کي استعمال ڪندي، لوڊ بيلنس پاڻ اڃا تائين ناڪامي جو هڪ نقطو پيش ڪري سگهي ٿو. توهان ڪيترن ئي لوڊ بيلنسرز جي وچ ۾ سچل IP نصب ڪندي اعلي دستيابي کي وڌيڪ بهتر بڻائي سگهو ٿا. توھان ھن بابت اسان جي باري ۾ وڌيڪ ڳولي سگھو ٿا
وڌيڪ ڪورس بابت
جو ذريعو: www.habr.com