Kā iestatīt augstas pieejamības slodzes līdzsvarotāju ar HAProxy, lai kontrolētu tīmekļa servera trafiku


HAProxy nozīmē augstas pieejamības starpniekserveri. Tā ir bezmaksas un atvērtā koda lietojumprogramma, kas rakstīta C programmēšanas valodā. HAProxy lietojumprogramma tiek izmantota kā TCP/HTTP slodzes līdzsvarotājs un starpniekservera risinājumiem. HAProxy lietojumprogrammas visizplatītākā izmantošana ir darba slodzes sadalīšana vairākos serveros, piemēram, tīmekļa serverī, datu bāzes serverī utt., Tādējādi uzlabojot servera vides vispārējo veiktspēju un uzticamību.

Ļoti efektīvu un ātru lietojumprogrammu izmanto daudzas pasaules slavenās organizācijas, tostarp, bet ne tikai, - Twitter, Reddit, GitHub un Amazon. Tas ir pieejams Linux, BSD, Solaris un AIX platformām.

Šajā apmācībā mēs apspriedīsim augstas pieejamības slodzes līdzsvarotāja iestatīšanas procesu, izmantojot HAProxy, lai kontrolētu HTTP bāzes lietojumprogrammu (tīmekļa serveru) trafiku, atdalot pieprasījumus vairākos serveros.

Šajā rakstā mēs izmantojam jaunāko stabilo HAProxy versijas versiju, ti, 1.5.10, kas izlaista 2014. gada 31. decembrī. Un šim iestatījumam mēs izmantojam arī CentOS 6.5, taču tālāk sniegtie norādījumi darbojas arī vietnē CentOS/RHEL/Fedora un Ubuntu/Debian izplatījumi.

Šeit mūsu slodzes līdzsvarotāja HAProxy serveris, kura resursdatora nosaukums ir websrv.tecmintlocal.com ar IP adresi 192.168.0.125.

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

Pārējās četras mašīnas darbojas un darbojas ar tādiem tīmekļa serveriem kā 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. darbība: Apache instalēšana klientu mašīnās

1. Vispirms mums ir jāinstalē Apache visos četros serveros un jādalās jebkurā vietnē, lai Apache instalētu visos četros serveros, šeit mēs izmantosim šādu komandu.

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

2. Pēc Apache tīmekļa servera instalēšanas visās četrās klientu mašīnās ikvienam no servera varat pārbaudīt, vai Apache darbojas, pārlūkprogrammā piekļūstot tam, izmantojot IP adresi.

http://192.168.0.121

2. darbība: HAProxy Server instalēšana

3. Lielākajā daļā mūsdienu mūsdienu Linux distribūciju HAPRoxy var viegli instalēt no noklusējuma bāzes krātuves, izmantojot noklusējuma pakotņu pārvaldnieku yum vai apt-get.

Piemēram, lai instalētu HAProxy RHEL/CentOS/Fedora un Debian/Ubuntu versijās, palaidiet šo komandu. Šeit esmu iekļāvis arī openssl pakotni, jo mēs iestatīsim HAProxy ar SSL un NON-SSL atbalstu.

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

Piezīme: Debian Whezzy 7.0 mums jāiespējo backports krātuve, direktorijā “/etc/apt/sources.list.d/” pievienojot jaunu failu backports.list ar šādu saturu.

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

Pēc tam atjauniniet krātuves datu bāzi un instalējiet HAProxy.

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

3. darbība: konfigurējiet HAProxy žurnālus

4. Tālāk mums ir jāiespējo reģistrēšanas funkcija HAProxy turpmākai atkļūdošanai. Atveriet galveno HAProxy konfigurācijas failu ‘/etc/haproxy/haproxy.cfg’ ar redaktora izvēli.

# vim /etc/haproxy/haproxy.cfg

Pēc tam izpildiet distro specifiskos norādījumus, lai konfigurētu reģistrēšanas funkciju HAProxy.

Sadaļā #Global settings iespējojiet šo rindu.

log         127.0.0.1 local2

Sadaļā #Global settings aizstājiet šīs rindas:

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

Ar,

log         127.0.0.1 local2

5. Pēc tam mums jāiespējo UDP syslog saņemšana konfigurācijas failā ‘/etc/rsyslog.conf’, lai atdalītu HAProxy žurnālfailus direktorijā /var/log . Atveriet failu ‘rsyslog.conf’, izvēloties redaktoru.

# vim /etc/rsyslog.conf

Uncommnet ModLoad un UDPServerRun, šeit mūsu serveris klausīsies 514 portu, lai apkopotu žurnālus syslog.

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Tālāk mums jāizveido atsevišķs fails ‘haproxy.conf’ zem direktorija ‘/etc/rsyslog.d/’, lai konfigurētu atsevišķus žurnālfailus.

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

Pievienojiet šādu rindu jaunizveidotajam failam.

local2.*	/var/log/haproxy.log

Visbeidzot restartējiet pakalpojumu rsyslog, lai atjauninātu jaunās izmaiņas.

# service rsyslog restart