ওয়েব সার্ভার ট্র্যাফিক নিয়ন্ত্রণ করতে HAProxy এর সাথে উচ্চ-উপলভ্যতা লোড ব্যালেন্সার কীভাবে সেটআপ করবেন


HAProxy উচ্চ উপলব্ধতা প্রক্সি জন্য দাঁড়িয়েছে। এটি সি প্রোগ্রামিং ল্যাঙ্গুয়েজে লিখিত একটি ফ্রি এবং ওপেন সোর্স অ্যাপ্লিকেশন। HAProxy অ্যাপ্লিকেশনটি টিসিপি/এইচটিটিপি লোড ব্যালেন্সার হিসাবে এবং প্রক্সি সমাধানের জন্য ব্যবহৃত হয়। HAProxy অ্যাপ্লিকেশনটির সর্বাধিক সাধারণ ব্যবহার হ'ল একাধিক সার্ভারগুলিতে কাজের বোঝা বিতরণ করা যেমন, ওয়েব সার্ভার, ডাটাবেস সার্ভার ইত্যাদি etc

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

এই টিউটোরিয়ালে, আমরা একাধিক সার্ভারের মাধ্যমে অনুরোধগুলি পৃথক করে এইচটিটিপি-ভিত্তিক অ্যাপ্লিকেশনগুলির (ওয়েব সার্ভার) ট্র্যাফিক নিয়ন্ত্রণ করতে HAProxy ব্যবহার করে একটি উচ্চ প্রাপ্যতা লোড ব্যালেন্সার স্থাপনের প্রক্রিয়াটি নিয়ে আলোচনা করব।

এই নিবন্ধটির জন্য, আমরা এইচএপ্রোক্সি সংস্করণটির সর্বশেষতম স্থিতিশীল রিলিজটি ব্যবহার করছি অর্থাৎ ৩১.০১.০১ ডিসেম্বর ২০১৪ এ প্রকাশিত And এছাড়াও আমরা এই সেটআপের জন্য সেন্টোস .5.৫ ব্যবহার করছি, তবে নীচের প্রদত্ত নির্দেশাবলী সেন্টোস/আরএইচএল/এও কাজ করে ফেডোরা এবং উবুন্টু/ডেবিয়ান বিতরণ।

এখানে আমাদের লোড-ব্যালেন্সার HAProxy সার্ভারের আইপি ঠিকানা 192.168.0.125 সহ Websrv.tecmintlocal.com হিসাবে হোস্টনাম রয়েছে।

Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com

অপর চারটি মেশিন আপাচের মতো ওয়েব সার্ভারের সাথে চলছে এবং চলছে।

Web Server #1 :	CentOS 6.5 [IP: 192.168.0.121] - [hostname: web1srv.tecmintlocal.com]
Web Server #2 :	CentOS 6.5 [IP: 192.168.0.122] - [hostname: web2srv.tecmintlocal.com]
Web Server #3 :	CentOS 6.5 [IP: 192.168.0.123] - [hostname: web3srv.tecmintlocal.com]
Web Server #4 :	CentOS 6.5 [IP: 192.168.0.124] - [hostname: web4srv.tecmintlocal.com]

পদক্ষেপ 1: ক্লায়েন্ট মেশিনে অ্যাপাচি ইনস্টল করা

১. প্রথমে আমাদের চারটি সার্ভারের অ্যাপাচি ইনস্টল করতে হবে এবং চারটি সার্ভারের অ্যাপাচি ইনস্টল করার জন্য আমরা এখানে নিম্নলিখিত কমান্ডটি ব্যবহার করতে যাচ্ছি।

# yum install httpd		[On RedHat based Systems]
# apt-get install apache2	[On Debian based Systems]

২. চারটি ক্লায়েন্ট মেশিনে অ্যাপাচি ওয়েব সার্ভার ইনস্টল করার পরে, আপনি সার্ভারের যে কোনওটিকে ব্রাউজারে আইপি অ্যাড্রেসের মাধ্যমে অ্যাকচি চালিয়ে চলছে কিনা তা যাচাই করতে পারবেন।

http://192.168.0.121

পদক্ষেপ 2: HAProxy সার্ভার ইনস্টল করা

৩. আজকের আধুনিক লিনাক্স ডিস্ট্রিবিউশনের বেশিরভাগ ক্ষেত্রে, HAPRoxy সহজেই ডিফল্ট বেস সংগ্রহস্থল থেকে ডিফল্ট প্যাকেজ ম্যানেজার yum বা অ্যাপ-গেট ব্যবহার করে ইনস্টল করা যায়।

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

# yum install haproxy openssl-devel	[On RedHat based Systems]
# apt-get install haproxy		[On Debian based Systems]

দ্রষ্টব্য: দেবিয়ান হুইজি 7.0-তে, নিম্নলিখিত বিষয়বস্তুগুলির সাথে "/etc/apt/sources.list.d/" ডিরেক্টরিতে একটি নতুন ফাইল ব্যাকপোর্ট.লিস্ট যুক্ত করে আমাদের ব্যাকপোর্ট রিপোজিটরি সক্ষম করতে হবে।

# echo "deb http://cdn.debian.net/debian wheezy-backports main" >> /etc/apt/sources.list.d/backports.list

এরপরে, সংগ্রহস্থল ডাটাবেস আপডেট করুন এবং HAProxy ইনস্টল করুন।

# apt-get update
# apt-get install haproxy -t wheezy-backports

পদক্ষেপ 3: HAProxy লগগুলি কনফিগার করুন

৪. পরবর্তী, ভবিষ্যতের ডিবাগিংয়ের জন্য আমাদের HAProxy এ লগিং বৈশিষ্ট্য সক্ষম করতে হবে। আপনার সম্পাদকের পছন্দ অনুযায়ী প্রধান HAProxy কনফিগারেশন ফাইল ‘/etc/haproxy/haproxy.cfg’ খুলুন।

# vim /etc/haproxy/haproxy.cfg

এরপরে, HAProxy এ লগিং বৈশিষ্ট্যটি কনফিগার করার জন্য ডিস্ট্রো-নির্দিষ্ট নির্দেশাবলী অনুসরণ করুন।

# গ্লোবাল সেটিংস এর অধীনে নিম্নলিখিত লাইনটি সক্ষম করুন।

log         127.0.0.1 local2

# গ্লোবাল সেটিংস এর অধীনে নিম্নলিখিত লাইনগুলি প্রতিস্থাপন করুন,

log /dev/log        local0
log /dev/log        local1 notice 

সঙ্গে,

log         127.0.0.1 local2

৫. এর পরে, আমাদের /var/লগ ডিরেক্টরিতে HAProxy এর জন্য পৃথক লগ ফাইলগুলিতে ‘/etc/rsyslog.conf’ কনফিগারেশন ফাইলের ইউডিপি সিসলগ অভ্যর্থনা সক্ষম করতে হবে। আপনার সম্পাদক চয়ন করার সাথে আপনার ‘rsyslog.conf’ ফাইলটি খুলুন।

# vim /etc/rsyslog.conf

আনকম্মনেট ModLoad এবং UDPServerRun, এখানে আমাদের সার্ভার পোর্ট 514 শুনবে লগগুলি syslog এ সংগ্রহ করতে।

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

Next. এর পরে, আমাদের পৃথক লগ ফাইলগুলি কনফিগার করার জন্য ‘/etc/rsyslog.d/’ ডিরেক্টরিতে একটি পৃথক ফাইল ‘haproxy.conf’ তৈরি করতে হবে।

# vim /etc/rsyslog.d/haproxy.conf

নতুন তৈরি ফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করুন।

local2.*	/var/log/haproxy.log

অবশেষে, নতুন পরিবর্তনগুলি আপডেট করতে আরএসস্লগ পরিষেবা পুনরায় চালু করুন।

# service rsyslog restart