CentOS 8 এ Nginx এর জন্য লোড ব্যালেন্সার হিসাবে HAProxy কিভাবে সেটআপ করবেন

Centos 8 E Nginx Era Jan Ya Loda Byalensara Hisabe Haproxy Kibhabe Seta Apa Karabena



উচ্চ প্রাপ্যতা প্রক্সি, সংক্ষেপে HAProxy হল একটি হালকা ওজনের এবং দ্রুত লোড ব্যালেন্সার যা প্রক্সি সার্ভার হিসাবে দ্বিগুণ হয়ে যায়। একটি লোড ব্যালেন্সার হিসাবে, এটি নির্দিষ্ট মানদণ্ড ব্যবহার করে একাধিক ওয়েব সার্ভার জুড়ে ইনকামিং ওয়েব ট্র্যাফিক বিতরণে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি করার মাধ্যমে, এটি উচ্চ প্রাপ্যতা এবং ত্রুটি সহনশীলতা নিশ্চিত করে যদি সেখানে অনেকগুলি সমবর্তী অনুরোধ থাকে যা একটি একক ওয়েব সার্ভারকে ওভারলোড করতে পারে।

হ্যাপ্রক্সি জনপ্রিয় সাইট যেমন টাম্বলার, গিটহাব এবং স্ট্যাকওভারফ্লো দ্বারা ব্যবহৃত হয়। এই নির্দেশিকায়, আমরা আপনাকে Nginx ব্যবহার করে চালিত ওয়েব সার্ভারের সেটআপে HAProxy ইনস্টল করার মাধ্যমে নিয়ে যাব।

ল্যাব সেটআপ

দেখানো হিসাবে CentOS 7 সার্ভারের 3টি উদাহরণ







হোস্টনেম            আইপি ঠিকানা

load_balancer      3.17.12.132
সার্ভার_01          3.19.229.234
সার্ভার_02          3.17.9.217

ধাপ 1: লোড ব্যালেন্সারের জন্য /etc/hosts ফাইলটি সম্পাদনা করুন

শুরু করতে, লোড ব্যালেন্সার সিস্টেমে লগ ইন করুন এবং দেখানো হিসাবে দুটি ওয়েব সার্ভারের হোস্টনাম এবং আইপি ঠিকানা অন্তর্ভুক্ত করতে /etc/hosts ফাইলটি পরিবর্তন করুন



$ কারণ / ইত্যাদি / হোস্ট
3.19.229.234   সার্ভার_01
3.17.9.217     সার্ভার-02



একবার হয়ে গেলে, পরিবর্তনগুলি সংরক্ষণ করুন এবং কনফিগারেশন ফাইল থেকে প্রস্থান করুন।





এখন প্রতিটি ওয়েব সার্ভারে যান এবং আপডেট করুন /etc/hosts লোড ব্যালেন্সারের আইপি ঠিকানা এবং হোস্টনাম সহ ফাইল

3.17.12.132   লোড-ব্যালেন্সার

তারপরে, নিশ্চিত করুন যে আপনি সার্ভার_01 থেকে লোড ব্যালেন্সারটি পিং করতে পারেন



এবং একইভাবে সার্ভার_02 থেকে

এছাড়াও, নিশ্চিত করুন, আপনি লোড ব্যালেন্সার থেকে সার্ভারগুলিকে পিং করতে পারেন।

নিখুঁত! সমস্ত সার্ভার লোড ব্যালেন্সারের সাথে যোগাযোগ করতে পারে!

ধাপ 2: লোড ব্যালেন্সারে HA প্রক্সি ইনস্টল এবং কনফিগার করুন

যেহেতু HA প্রক্সি সেন্টোস অফিসিয়াল রিপোজিটরি থেকে সহজেই উপলব্ধ, তাই আমরা yum বা dnf প্যাকেজ ম্যানেজার ব্যবহার করে এটি ইনস্টল করতে যাচ্ছি।

কিন্তু বরাবরের মতো, প্রথমে সিস্টেম আপডেট করুন

# yum আপডেট

এর পরে, দেখানো হিসাবে HA প্রক্সি ইনস্টল করুন

# yum ইনস্টল করুন হ্যাপ্রক্সি

সফল ইনস্টলেশনের পরে, হ্যাপ্রক্সি ডিরেক্টরিতে নেভিগেট করুন।

# সিডি / ইত্যাদি / হ্যাপ্রক্সি

সর্বোত্তম অনুশীলনের জন্য কোনো পরিবর্তন করার আগে আমাদের যেকোনো কনফিগারেশন ফাইলের ব্যাকআপ নিতে হবে। তাই ব্যাকআপ haproxy.cfg ফাইলের নাম পরিবর্তন করে।

# mv haproxy.cfg  haproxy.cfg.bak

এরপরে, এগিয়ে যান এবং কনফিগারেশন ফাইলটি খুলুন

কারণ haproxy.cfg

আপনি দেখানো হিসাবে পরিবর্তন করা নিশ্চিত করুন

#------------------------------------------------ ------------------
# গ্লোবাল সেটিংস
#------------------------------------------------ ------------------
বিশ্বব্যাপী
log         127.0.0.1 local2 #লগ কনফিগারেশন

chroot / ছিল / lib / হ্যাপ্রক্সি
পিডফাইল / ছিল / চালানো / haproxy.pid
ম্যাক্সকন 4000
ব্যবহারকারী        হ্যাপ্রক্সি # হ্যাপ্রক্সি ব্যবহারকারী এবং গ্রুপ 'হ্যাপ্রক্সি' এর অধীনে চলছে
গ্রুপ       হ্যাপ্রক্সি
ডেমন

# স্ট্যাটাস ইউনিক্স সকেট চালু করুন
পরিসংখ্যান সকেট / ছিল / lib / হ্যাপ্রক্সি / পরিসংখ্যান

#------------------------------------------------ ------------------
# সাধারণ ডিফল্ট যা সমস্ত 'শুনুন' এবং 'ব্যাকএন্ড' বিভাগগুলি করবে
# তাদের ব্লকে মনোনীত না হলে ব্যবহার করুন
#------------------------------------------------ ------------------
পূর্ব নির্ধারিত
মোড                   http
log                     বিশ্বব্যাপী
বিকল্প                  httplog
বিকল্প                  dontlognull
বিকল্প http-সার্ভার-ক্লোজ
127.0.0.0 ব্যতীত ফরওয়ার্ড ফরওয়ার্ডের বিকল্প / 8
বিকল্প                  পুনঃপ্রচার
পুনরায় চেষ্টা করে 3
টাইমআউট http-request   10s
টাইমআউট সারি           1মি
টাইমআউট সংযোগ         10s
টাইমআউট ক্লায়েন্ট          1মি
টাইমআউট সার্ভার          1মি
টাইমআউট http-কিপ-লাইভ 10 সেকেন্ড
টাইমআউট চেক            10 সে
ম্যাক্সকন 3000

#------------------------------------------------ ------------------
#HAProxy মনিটরিং কনফিগারেশন
#------------------------------------------------ ------------------
haproxy3-মনিটরিং শুনুন * : 8080 #Haproxy মনিটরিং পোর্ট 8080 এ চলে
মোড http
ফরোয়ার্ডের জন্য বিকল্প
বিকল্প httpclose
পরিসংখ্যান সক্ষম
পরিসংখ্যান শো-কিংবদন্তি
পরিসংখ্যান রিফ্রেশ 5s
পরিসংখ্যান uri / পরিসংখ্যান HAProxy নিরীক্ষণের জন্য #URL
পরিসংখ্যান রাজ্য Haproxy\ পরিসংখ্যান
stats auth Password123: Password123 # মনিটরিং ড্যাশবোর্ডে লগইন করার জন্য ব্যবহারকারী এবং পাসওয়ার্ড
পরিসংখ্যান অ্যাডমিন যদি সত্য
ডিফল্ট_ব্যাকএন্ড অ্যাপ-প্রধান #এটি ঐচ্ছিকভাবে ব্যাকএন্ড পর্যবেক্ষণের জন্য

#------------------------------------------------ ------------------
# ফ্রন্টএন্ড কনফিগারেশন
#------------------------------------------------ ------------------
ফ্রন্টএন্ড প্রধান
বাঁধাই করা * : 80
বিকল্প http-সার্ভার-ক্লোজ
ফরোয়ার্ডের জন্য বিকল্প
ডিফল্ট_ব্যাকএন্ড অ্যাপ-প্রধান

#------------------------------------------------ ------------------
# ব্যালেন্স অ্যালগরিদম হিসাবে ব্যাকএন্ড রাউন্ড রবিন
#------------------------------------------------ ------------------
ব্যাকএন্ড অ্যাপ-প্রধান

ভারসাম্য রাউন্ডরবিন #ব্যালেন্স অ্যালগরিদম

বিকল্প httpchk HEAD / 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

নিম্নলিখিত লাইনগুলি আটকান, সংরক্ষণ করুন এবং প্রস্থান করুন

স্থানীয়2.=তথ্য / ছিল / লগ / haproxy-access.log # অ্যাক্সেস লগের জন্য
local2.notice / ছিল / লগ / haproxy-info.log # পরিষেবা তথ্যের জন্য - ব্যাকএন্ড, লোডব্যালেন্সার

পরিবর্তনগুলি কার্যকর করার জন্য দেখানো হিসাবে rsyslog ডেমন পুনরায় চালু করুন:

# systemctl রিস্টার্ট rsyslog

তারপর শুরু করুন এবং HAProxy সক্ষম করুন

# systemctl শুরু rsyslog
# systemctl rsyslog সক্ষম করে

HAProxy চলছে কিনা যাচাই করুন

# systemctl অবস্থা rsyslog

ধাপ 3: Nginx ইনস্টল করুন এবং কনফিগার করুন

এখন, অবশিষ্ট একমাত্র অংশ হল Nginx এর ইনস্টলেশন। প্রতিটি সার্ভারে লগ ইন করুন এবং প্রথমে সিস্টেম প্যাকেজ আপডেট করুন:

# yum আপডেট

পরবর্তী ইনস্টল করুন EPEL (এন্টারপ্রাইজ লিনাক্সের জন্য অতিরিক্ত প্যাকেজ)

# 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: লোড ব্যালেন্সার কাজ করছে কিনা তা পরীক্ষা করা

আমরা অবশেষে সেই বিন্দুতে আছি যেখানে আমরা দেখতে চাই কনফিগারেশন কাজ করছে কিনা। তাই লোড ব্যালেন্সারে লগ ইন করুন এবং বারবার কার্ল কমান্ডটি চালান

# কার্ল 3.17.12.132

আপনি সার্ভার_01 এবং সার্ভার_02 থেকে index.html এর মান দেখিয়ে টার্মিনালে বিকল্প আউটপুট পাবেন

এখন একটি ওয়েব ব্রাউজার ব্যবহার করে পরীক্ষা করা যাক। আপনার লোড ব্যালেন্সারের আইপি ঠিকানা ব্রাউজ করুন

http: // লোড-ব্যালেন্সার-আইপি-ঠিকানা

প্রথম পৃষ্ঠাটি যেকোনো ওয়েব সার্ভারের বিষয়বস্তু প্রদর্শন করবে


এখন ওয়েবপৃষ্ঠাটি রিফ্রেশ করুন এবং এটি অন্য ওয়েব সার্ভার থেকে সামগ্রী প্রদর্শন করে কিনা তা দেখতে পরীক্ষা করুন৷

নিখুঁত! লোড ব্যালেন্স দুই ওয়েব সার্ভারের মধ্যে সমানভাবে আইপি ট্র্যাফিক বিতরণ করছে!
আপনি কিভাবে CentOS 8-এ HAProxy কনফিগার করার পাশাপাশি ইনস্টল করতে পারেন সে সম্পর্কে এই টিউটোরিয়ালটি সমাপ্ত করে। আপনার প্রতিক্রিয়া অনেক প্রশংসা করা হবে।