হ্যাপ্রক্সি জনপ্রিয় সাইট যেমন টাম্বলার, গিটহাব এবং স্ট্যাকওভারফ্লো দ্বারা ব্যবহৃত হয়। এই নির্দেশিকায়, আমরা আপনাকে 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 কনফিগার করার পাশাপাশি ইনস্টল করতে পারেন সে সম্পর্কে এই টিউটোরিয়ালটি সমাপ্ত করে। আপনার প্রতিক্রিয়া অনেক প্রশংসা করা হবে।