HaProxy کو مقبول سائٹس جیسے Tumblr، GitHub، اور StackOverflow کے ذریعے استعمال کیا جاتا ہے۔ اس گائیڈ میں، ہم آپ کو HAProxy کی انسٹالیشن کے ذریعے ویب سرورز کے سیٹ اپ میں لے جائیں گے جو Nginx کے استعمال سے چلتے ہیں۔
لیب سیٹ اپ
سینٹوس 7 سرورز کی 3 مثالیں جیسا کہ دکھایا گیا ہے۔
میزبان نام IP پتے
load_balancer 3.17.12.132
سرور_01 3.19.229.234
سرور_02 3.17.9.217
مرحلہ 1: لوڈ بیلنسر کے لیے /etc/hosts فائل میں ترمیم کریں۔
شروع کرنے کے لیے، لوڈ بیلنس سسٹم میں لاگ ان کریں اور /etc/hosts فائل میں ترمیم کریں تاکہ دکھائے گئے دو ویب سرورز کے میزبان نام اور IP پتے شامل ہوں۔
$ کیونکہ / وغیرہ / میزبان
3.19.229.234 سرور_01
3.17.9.217 سرور-02
ایک بار کام کرنے کے بعد، تبدیلیوں کو محفوظ کریں اور کنفیگریشن فائل سے باہر نکلیں۔
اب ہر ایک ویب سرور پر جائیں اور اپ ڈیٹ کریں۔ /etc/hosts لوڈ بیلنسر کے IP ایڈریس اور میزبان نام کے ساتھ فائل
3.17.12.132 لوڈ بیلنسراس کے بعد، تصدیق کریں کہ آپ سرور_01 سے لوڈ بیلنس کو پنگ کر سکتے ہیں۔
اور اسی طرح سرور_02 سے
اس کے علاوہ، اس بات کو یقینی بنائیں کہ آپ لوڈ بیلنسر سے سرورز کو پنگ کر سکتے ہیں۔
کامل! تمام سرورز لوڈ بیلنسر کے ساتھ بات چیت کر سکتے ہیں!
مرحلہ 2: لوڈ بیلنسر پر HA پراکسی کو انسٹال اور کنفیگر کریں۔
چونکہ HA Proxy CentOS آفیشل ریپوزٹری سے آسانی سے دستیاب ہے، اس لیے ہم اسے yum یا dnf پیکیج مینیجر کا استعمال کرتے ہوئے انسٹال کرنے جا رہے ہیں۔
لیکن ہمیشہ کی طرح، پہلے سسٹم کو اپ ڈیٹ کریں۔
# yum اپ ڈیٹاگلا، جیسا کہ دکھایا گیا ہے HA پراکسی انسٹال کریں۔
# yum انسٹال کریں haproxyکامیاب تنصیب پر، haproxy ڈائریکٹری پر جائیں۔
# سی ڈی / وغیرہ / haproxyبہترین پریکٹس کا تقاضا ہے کہ ہم کوئی بھی ترمیم کرنے سے پہلے کسی بھی کنفیگریشن فائل کا بیک اپ لیں۔ تو بیک اپ haproxy.cfg فائل کا نام تبدیل کرکے۔
# mv haproxy.cfg haproxy.cfg.bakاگلا، آگے بڑھیں اور کنفیگریشن فائل کو کھولیں۔
کیونکہ haproxy.cfgاس بات کو یقینی بنائیں کہ آپ ترمیم کریں جیسا کہ دکھایا گیا ہے۔
#------------------------------------------------ -----------------# عالمی ترتیبات
#------------------------------------------------ -----------------
عالمی
log 127.0.0.1 local2 # لاگ کنفیگریشن
کروٹ / تھا / lib / haproxy
pidfile / تھا / رن / haproxy.pid
maxconn 4000
صارف۔ ہاپروکسی #Haproxy صارف اور گروپ 'haproxy' کے تحت چل رہا ہے
گروپر ہاپروکسی
ڈیمون
# اسٹیٹس یونکس ساکٹ کو آن کریں۔
اعدادوشمار کی ساکٹ / تھا / lib / haproxy / اعدادوشمار
#------------------------------------------------ -----------------
# عام ڈیفالٹس جو تمام 'سن' اور 'بیک اینڈ' سیکشنز کریں گے۔
# استعمال کریں اگر ان کے بلاک میں نامزد نہیں کیا گیا ہے۔
#------------------------------------------------ -----------------
ڈیفالٹس
موڈ http
log عالمی
اختیار httplog
آپشن dontlognull
آپشن http-server-close
127.0.0.0 کے علاوہ آگے کے لیے آپشن / 8
آپشن دوبارہ بھیجنا
دوبارہ کوشش کریں 3
ٹائم آؤٹ http-request 10s
ٹائم آؤٹ قطار 1m
ٹائم آؤٹ کنیکٹ 10s
ٹائم آؤٹ کلائنٹ 1m
ٹائم آؤٹ سرور 1m
ٹائم آؤٹ http-keep-alive 10s
ٹائم آؤٹ چیک 10 سیکنڈ
maxconn 3000
#------------------------------------------------ -----------------
#HAProxy مانیٹرنگ کنفیگ
#------------------------------------------------ -----------------
haproxy3-مانیٹرنگ سنیں۔ * : 8080 #Haproxy مانیٹرنگ پورٹ 8080 پر چلتی ہے۔
موڈ http
آپشن فارورڈ
آپشن httpclose
اعدادوشمار فعال
اعدادوشمار دکھاتے ہیں۔
اعدادوشمار ریفریش 5s
اعدادوشمار uri / اعدادوشمار HAProxy کی نگرانی کے لیے #URL
stats realm Haproxy\ Statistics
stats auth Password123: Password123 # مانیٹرنگ ڈیش بورڈ میں لاگ ان کرنے کے لیے صارف اور پاس ورڈ
اعدادوشمار کے منتظم اگر سچ ہے۔
default_backend app-main # یہ اختیاری طور پر بیک اینڈ کی نگرانی کے لیے ہے۔
#------------------------------------------------ -----------------
# فرنٹ اینڈ کنفیگریشن
#------------------------------------------------ -----------------
فرنٹ اینڈ مین
باندھنا * : 80
آپشن http-server-close
آپشن فارورڈ
default_backend app-main
#------------------------------------------------ -----------------
# بیک اینڈ راؤنڈ رابن بطور بیلنس الگورتھم
#------------------------------------------------ -----------------
بیک اینڈ ایپ مین
راؤنڈ روبن کا توازن # بیلنس الگورتھم
آپشن httpchk ہیڈ / HTTP / 1.1 \r\nمیزبان:\ لوکل ہوسٹ
#چیک کریں کہ سرور ایپلیکیشن تیار ہے اور صحت مند ہے - 200 اسٹیٹس کوڈ
سرور سرور_01 3.19.229.234: 80 چیک کریں #Nginx1
سرور سرور_02 3.17.9.217: 80 چیک کریں #Nginx2
ویب سرورز کے میزبان نام اور IP پتوں میں ترمیم کرنا یقینی بنائیں جیسا کہ آخری دو سطروں میں اشارہ کیا گیا ہے۔ تبدیلیاں محفوظ کریں اور باہر نکلیں۔
اگلا مرحلہ HAProxy کے اعدادوشمار کو لاگ کرنے کے لیے Rsyslog کو ترتیب دینا ہوگا۔
# کیونکہ / وغیرہ / rsyslog.confیقینی بنائیں کہ آپ UDP کنکشن کی اجازت دینے کے لیے نیچے دی گئی لائنوں کو غیر تبصرہ کرتے ہیں۔
$ModLoad imudp$UDPServerRun 514
اگلا، آگے بڑھیں اور ایک نئی کنفیگریشن فائل بنائیں haproxy.conf
# کیونکہ / وغیرہ / rsyslog.d / haproxy.confدرج ذیل لائنوں کو چسپاں کریں، محفوظ کریں اور باہر نکلیں۔
local2.=info / تھا / لاگ / haproxy-access.log # رسائی لاگ کے لیےlocal2.notice / تھا / لاگ / haproxy-info.log #سروس کی معلومات کے لیے - بیک اینڈ، لوڈ بیلنسر
تبدیلیوں کے اثر میں آنے کے لیے rsyslog ڈیمون کو دوبارہ شروع کریں جیسا کہ دکھایا گیا ہے:
# systemctl rsyslog کو دوبارہ شروع کریں۔پھر شروع کریں اور HAProxy کو فعال کریں۔
# systemctl rsyslog شروع کریں۔# systemctl rsyslog کو فعال کریں۔
تصدیق کریں کہ HAProxy چل رہا ہے۔
# systemctl اسٹیٹس rsyslogمرحلہ 3: Nginx کو انسٹال اور کنفیگر کریں۔
اب، صرف حصہ باقی ہے Nginx کی تنصیب ہے. ہر سرور میں لاگ ان کریں اور پہلے سسٹم پیکجز کو اپ ڈیٹ کریں:
# yum اپ ڈیٹاگلا انسٹال کریں EPEL (Enterprise Linux کے لیے اضافی پیکجز)
# yum انسٹال کریں گرم رہائیNginx انسٹال کرنے کے لیے، کمانڈ چلائیں:
# yum انسٹال کریں nginxاگلا، شروع کریں اور Nginx کو فعال کریں۔
# systemctl nginx شروع کریں۔# systemctl nginx کو فعال کریں۔
اس کے بعد ہم دونوں صورتوں میں index.html فائل میں ترمیم کرنے جا رہے ہیں تاکہ یہ ظاہر کیا جا سکے کہ لوڈ بیلنسر کس طرح ویب ٹریفک کو دونوں سرورز پر تقسیم کرنے کے قابل ہے۔
سرور_01 کے لیے
# بازگشت 'server_01. ارے! پہلے ویب سرور میں خوش آمدید' > index.htmlسرور_02 کے لیے
# بازگشت 'server_02. ارے! دوسرے ویب سرور میں خوش آمدید' > index.htmlتبدیلیوں پر اثر انداز ہونے کے لیے، Nginx کو دوبارہ شروع کریں۔
# systemctl nginx کو دوبارہ شروع کریں۔مرحلہ 4: جانچ کرنا کہ آیا لوڈ بیلنسر کام کر رہا ہے۔
ہم آخر کار اس مقام پر ہیں جہاں ہم دیکھنا چاہتے ہیں کہ آیا کنفیگریشن کام کر رہی ہے۔ لہذا لوڈ بیلنسر میں لاگ ان کریں اور بار بار curl کمانڈ پر عمل کریں۔
# curl 3.17.12.132آپ کو سرور_01 اور سرور_02 سے index.html کی قدر دکھاتے ہوئے ٹرمینل پر متبادل آؤٹ پٹ ملنا چاہیے۔
اب ایک ویب براؤزر کا استعمال کرتے ہوئے ٹیسٹ کرتے ہیں۔ اپنے لوڈ بیلنسر کا آئی پی ایڈریس براؤز کریں۔
http: // لوڈ بیلنسر-آئی پی ایڈریسپہلا صفحہ کسی بھی ویب سرور سے مواد دکھائے گا۔
اب ویب پیج کو ریفریش کریں اور چیک کریں کہ آیا یہ دوسرے ویب سرور سے مواد دکھاتا ہے۔
کامل! لوڈ بیلنس IP ٹریفک کو دو ویب سرورز کے درمیان یکساں طور پر تقسیم کر رہا ہے!
یہ اس ٹیوٹوریل کو سمیٹتا ہے کہ آپ CentOS 8 پر HAProxy کو کس طرح انسٹال اور کنفیگر کر سکتے ہیں۔ آپ کے تاثرات کو بہت سراہا جائے گا۔