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