ວິທີການຕັ້ງ Balancer ທີ່ມີຄວາມພ້ອມທີ່ມີຄວາມໄວສູງກັບ HAProxy ເພື່ອຄວບຄຸມການຈະລາຈອນຂອງ Web Server


HAProxy ຢືນ ສຳ ລັບໂປແກຼມທີ່ມີຄວາມພ້ອມສູງສຸດ. ມັນແມ່ນໂປແກຼມໂປແກຼມຟຣີແລະເປີດແຫຼ່ງທີ່ຂຽນເປັນພາສາ C programming. ຄໍາຮ້ອງສະຫມັກ HAProxy ຖືກນໍາໃຊ້ເປັນ TCP/HTTP Load Balancer ແລະສໍາລັບ Solutions Proxy. ການ ນຳ ໃຊ້ໂປແກຼມ HAProxy ທີ່ພົບເລື້ອຍທີ່ສຸດແມ່ນການແຈກຢາຍວຽກງານຕ່າງໆຜ່ານຫລາຍເຊີບເຊີ້ເຊັ່ນ: ເຄື່ອງແມ່ຂ່າຍເວັບ, ເຊີບເວີຖານຂໍ້ມູນ, ແລະອື່ນໆ.

ຄໍາຮ້ອງສະຫມັກທີ່ມີປະສິດຕິພາບສູງແລະລວດໄວຖືກນໍາໃຊ້ໂດຍຫລາຍໆອົງການທີ່ມີຊື່ສຽງຂອງໂລກເຊິ່ງປະກອບມີແຕ່ບໍ່ຈໍາກັດ - Twitter, Reddit, GitHub ແລະ Amazon. ມັນສາມາດໃຊ້ໄດ້ສໍາລັບແພລະຕະຟອມ Linux, BSD, Solaris ແລະ AIX.

ໃນບົດແນະ ນຳ ນີ້, ພວກເຮົາຈະປຶກສາຫາລືກ່ຽວກັບຂັ້ນຕອນການຕັ້ງຄ່າການດຸ່ນດ່ຽງການໂຫຼດທີ່ສາມາດ ນຳ ໃຊ້ໄດ້ສູງໂດຍໃຊ້ HAProxy ເພື່ອຄວບຄຸມການຈະລາຈອນຂອງໂປແກຼມ HTTP ທີ່ອີງໃສ່ (web server) ໂດຍການແຍກການຮ້ອງຂໍຜ່ານຫລາຍ server.

ສຳ ລັບບົດຂຽນນີ້, ພວກເຮົາ ກຳ ລັງ ນຳ ໃຊ້ລຸ້ນ HAProxy ລຸ້ນ ໃໝ່ ທີ່ມີຄວາມ ໝັ້ນ ຄົງທີ່ສຸດເຊັ່ນ: 1.5.10 ທີ່ອອກໃນວັນທີ 31 ທັນວາ 2014. ແລະພວກເຮົາຍັງໃຊ້ CentOS 6.5 ສຳ ລັບການຕິດຕັ້ງນີ້, ແຕ່ ຄຳ ແນະ ນຳ ທີ່ໃຫ້ໄວ້ຂ້າງລຸ່ມນີ້ຍັງເຮັດວຽກຢູ່ CentOS/RHEL/ການແຈກຈ່າຍ Fedora ແລະ Ubuntu/Debian.

ນີ້ແມ່ນເຄື່ອງແມ່ຂ່າຍຂອງ HAProxy load-balancer ຂອງພວກເຮົາທີ່ມີຊື່ໂຮດວ່າ websrv.tecmintlocal.com ທີ່ຢູ່ IP 192.168.0.125.

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

ອີກ 4 ເຄື່ອງແມ່ນ ກຳ ລັງຂື້ນແລະເຮັດວຽກກັບເຊີຟເວີເວັບເຊັ່ນ Apache.

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: ການຕິດຕັ້ງ Apache ໃນເຄື່ອງ Client

1. ທຳ ອິດພວກເຮົາຕ້ອງຕິດຕັ້ງ Apache ໃນທັງສີ່ server ແລະແບ່ງປັນເວັບໄຊທ໌ໃດ ໜື່ງ, ເພື່ອຕິດຕັ້ງ Apache ໃນທັງສີ່ server ຂອງທີ່ນີ້ພວກເຮົາຈະໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

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

2. ຫລັງຈາກຕິດຕັ້ງ Apache web server ໃນເຄື່ອງລູກຄ້າທັງສີ່ເຄື່ອງ, ທ່ານສາມາດກວດສອບຜູ້ໃດຂອງ server ໄດ້ບໍ່ວ່າຈະເປັນ Apache ກຳ ລັງເຮັດວຽກໂດຍການເຂົ້າໃຊ້ມັນຜ່ານ IP address ໃນ browser.

http://192.168.0.121

ຂັ້ນຕອນທີ 2: ການຕິດຕັ້ງ HAProxy Server

3. ໃນສ່ວນໃຫຍ່ຂອງການແຈກແຈງ Linux ທີ່ທັນສະ ໄໝ ໃນປະຈຸບັນ, HAPRoxy ສາມາດຕິດຕັ້ງໄດ້ງ່າຍຈາກຖານຂໍ້ມູນພື້ນຖານໂດຍໃຊ້ yum package manager yum ຫຼື apt-get.

ຍົກຕົວຢ່າງ, ການຕິດຕັ້ງ HAProxy ໃນ RHEL/CentOS/Fedora ແລະ Debian/Ubuntu, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້. ນີ້ຂ້ອຍໄດ້ລວມເອົາຊຸດ opensl ເຊັ່ນກັນ, ເພາະວ່າພວກເຮົາ ກຳ ລັງຈະຕັ້ງ HAProxy ດ້ວຍການສະ ໜັບ ສະ ໜູນ SSL ແລະ NON-SSL.

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

ໝາຍ ເຫດ: ໃນ Debian Whezzy 7.0, ພວກເຮົາ ຈຳ ເປັນຕ້ອງເປີດ ນຳ ໃຊ້ຫໍສະ ໝຸດ ສາທາລະນະໂດຍການເພີ່ມແຟ້ມເອກະສານ ໃໝ່ backports.list ພາຍໃຕ້ "/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

4. ຕໍ່ໄປ, ພວກເຮົາຕ້ອງການເປີດໃຊ້ຄຸນລັກສະນະການຕັດໄມ້ໃນ 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

5. ຕໍ່ໄປ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງເປີດ ນຳ ໃຊ້ UDP syslog ໃນ '/etc/rsyslog.conf' ການຕັ້ງຄ່າເພື່ອແຍກໄຟລ໌ບັນທຶກ ສຳ ລັບ HAProxy ພາຍໃຕ້ /var/log . ເປີດເອກະສານ 'rsyslog.conf' ຂອງທ່ານກັບຕົວເລືອກບັນນາທິການຂອງທ່ານ.

# vim /etc/rsyslog.conf

Uncommnet ModLoad ແລະ UDPServerRun, ທີ່ນີ້ Server ຂອງພວກເຮົາຈະຟັງ Port 514 ເພື່ອເກັບ ກຳ ຂໍ້ມູນບັນທຶກເຂົ້າໃນ syslog.

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. ຕໍ່ໄປ, ພວກເຮົາ ຈຳ ເປັນຕ້ອງສ້າງເອກະສານແຍກຕ່າງຫາກ ‘haproxy.conf’ ພາຍໃຕ້ລາຍຊື່ ‘/etc/rsyslog.d/‘ ເພື່ອ ກຳ ນົດເອກະສານບັນທຶກແຍກຕ່າງຫາກ.

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

ຕິດຕໍ່ໃສ່ເສັ້ນຕໍ່ໄປຫາແຟ້ມສ້າງ ໃໝ່.

local2.*	/var/log/haproxy.log

ສຸດທ້າຍ, ເລີ່ມການບໍລິການ rsyslog ເພື່ອອັບເດດການປ່ຽນແປງ ໃໝ່.

# service rsyslog restart