Hvernig á að setja upp álagsjafnvægi með mikilli aðgengi með HAProxy til að stjórna umferð á vefþjóni


HAProxy stendur fyrir High Availability proxy. Það er ókeypis og opinn hugbúnaður skrifaður á C forritunarmáli. HAProxy forrit er notað sem TCP/HTTP álagsjafnvægi og fyrir proxy lausnir. Algengasta notkun HAProxy forritsins er að dreifa vinnuálaginu á marga netþjóna, td vefþjón, gagnagrunnsþjón o.s.frv., sem bætir heildarafköst og áreiðanleika netþjónsumhverfis.

Mjög skilvirkt og hraðvirkt forrit er notað af mörgum af virtum stofnunum heimsins sem inniheldur en takmarkast ekki við - Twitter, Reddit, GitHub og Amazon. Það er fáanlegt fyrir Linux, BSD, Solaris og AIX vettvang.

Í þessari kennslu munum við ræða ferlið við að setja upp álagsjafnvægi með mikilli aðgengi með því að nota HAProxy til að stjórna umferð HTTP-undirstaða forrita (vefþjóna) með því að aðgreina beiðnir milli margra netþjóna.

Fyrir þessa grein erum við að nota nýjustu stöðugu útgáfuna af HAProxy útgáfu, þ.e. 1.5.10 sem kom út 31. desember 2014. Og einnig erum við að nota CentOS 6.5 fyrir þessa uppsetningu, en leiðbeiningarnar hér að neðan virka einnig á CentOS/RHEL/ Fedora og Ubuntu/Debian dreifingar.

Hér er HAProxy þjónninn okkar sem hefur hýsingarheiti sem websrv.tecmintlocal.com með IP tölu 192.168.0.125.

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

Hinar fjórar vélarnar eru í gangi með vefþjónum eins og 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]

Skref 1: Uppsetning Apache á viðskiptavinavélum

1. Fyrst verðum við að setja upp Apache á öllum fjórum netþjónunum og deila hvaða síðu sem er, til að setja upp Apache á öllum fjórum netþjónunum hér ætlum við að nota eftirfarandi skipun.

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

2. Eftir að Apache vefþjónninn hefur verið settur upp á öllum fjórum biðlaravélunum geturðu staðfest hvern sem er á netþjóninum hvort Apache sé í gangi með því að fá aðgang að honum í gegnum IP tölu í vafranum.

http://192.168.0.121

Skref 2: Uppsetning HAProxy Server

3. Í flestum nútíma Linux dreifingum í dag er auðvelt að setja HAPRoxy upp úr sjálfgefna grunngeymslunni með því að nota sjálfgefna pakkastjórann yum eða apt-get.

Til dæmis, til að setja upp HAProxy á RHEL/CentOS/Fedora og Debian/Ubuntu útgáfur skaltu keyra eftirfarandi skipun. Hér hef ég líka látið openssl pakka fylgja með, vegna þess að við ætlum að setja upp HAProxy með SSL og NON-SSL stuðningi.

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

Athugið: Í Debian Whezzy 7.0 þurfum við að virkja bakports geymsluna með því að bæta við nýrri skrá backports.list undir “/etc/apt/sources.list.d/” möppu með eftirfarandi innihaldi.

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

Næst skaltu uppfæra gagnagrunn geymslunnar og setja upp HAProxy.

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

Skref 3: Stilltu HAProxy Logs

4. Næst þurfum við að virkja skráningaraðgerðir í HAProxy fyrir kembiforrit í framtíðinni. Opnaðu aðal HAProxy stillingarskrána '/etc/haproxy/haproxy.cfg' með vali ritstjóra.

# vim /etc/haproxy/haproxy.cfg

Næst skaltu fylgja dreifingarsértækum leiðbeiningunum til að stilla skráningareiginleika í HAProxy.

Undir #Global settings, virkjaðu eftirfarandi línu.

log         127.0.0.1 local2

Undir #Global settings skaltu skipta út eftirfarandi línum,

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

Með,

log         127.0.0.1 local2

5. Næst þurfum við að virkja UDP syslog móttöku í ‘/etc/rsyslog.conf‘ stillingarskránni til að aðgreina log skrár fyrir HAProxy undir /var/log möppu. Opnaðu ‘rsyslog.conf’ skrána þína með vali ritstjóra.

# vim /etc/rsyslog.conf

Uncommnet ModLoad og UDPServerRun, Hér mun þjónninn okkar hlusta á Port 514 til að safna annálunum í syslog.

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Næst þurfum við að búa til sérstaka skrá 'haproxy.conf' undir '/etc/rsyslog.d/' möppu til að stilla aðskildar annálaskrár.

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

Bættu eftirfarandi línu við nýbúna skrána.

local2.*	/var/log/haproxy.log

Að lokum skaltu endurræsa rsyslog þjónustuna til að uppfæra nýju breytingarnar.

# service rsyslog restart