High-Ailability Load Balancerin määrittäminen 'HAProxyn' avulla web-palvelinliikenteen ohjaamiseksi


HAProxy tarkoittaa High Availability -välityspalvelinta. Se on ilmainen ja avoimen lähdekoodin sovellus, joka on kirjoitettu C-ohjelmointikielellä. HAProxy-sovellusta käytetään TCP/HTTP Load Balancerina ja välityspalvelinratkaisuina. HAProxy-sovelluksen yleisin käyttötarkoitus on jakaa työkuorma useille palvelimille, kuten web-palvelimelle, tietokantapalvelimelle jne., mikä parantaa palvelinympäristön yleistä suorituskykyä ja luotettavuutta.

Erittäin tehokasta ja nopeaa sovellusta käyttävät monet maailman maineikkaat organisaatiot, joihin kuuluvat muun muassa Twitter, Reddit, GitHub ja Amazon. Se on saatavana Linux-, BSD-, Solaris- ja AIX-alustoille.

Tässä opetusohjelmassa käsittelemme korkean käytettävyyden kuormituksen tasapainottimen määrittämistä HAProxyn avulla HTTP-pohjaisten sovellusten (verkkopalvelimien) liikenteen hallintaan erottamalla pyynnöt useiden palvelimien välillä.

Tässä artikkelissa käytämme HAProxy-version uusinta vakaata versiota, eli 1.5.10, joka julkaistiin 31. joulukuuta 2014. Lisäksi käytämme tähän CentOS 6.5 -versiota. asennus, mutta alla annetut ohjeet toimivat myös CentOS/RHEL/Fedora- ja Ubuntu/Debian-jakeluissa.

Oma ympäristöasetukset

Tässä kuormituksen tasapainottaja HAProxy-palvelimemme, jonka isäntänimi on websrv.tecmintlocal.com ja IP-osoite 192.168.0.125.

HAProxy-palvelimen asetukset
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Asiakasverkkopalvelimien asetukset

Muut neljä konetta ovat käytössä verkkopalvelimilla, kuten 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]

Vaihe 1: Apachen asentaminen asiakaskoneisiin

1. Ensin meidän on asennettava Apache kaikkiin neljään palvelimeen ja jaettava mikä tahansa sivusto. Apachen asentamiseksi kaikkiin neljään palvelimeen tässä käytetään seuraavaa komentoa.

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

2. Kun olet asentanut Apache-verkkopalvelimen kaikkiin neljään asiakaskoneeseen, voit tarkistaa keneltä tahansa palvelimesta, onko Apache käynnissä, käyttämällä sitä selaimen IP-osoitteen kautta.

http://192.168.0.121

Vaihe 2: HAProxy-palvelimen asentaminen

3. Useimmissa nykyaikaisissa Linux-jakeluissa HAPRoxy voidaan helposti asentaa oletuspohjaisesta arkistosta käyttämällä oletuspaketinhallintaa yum tai apt-get. >.

Jos haluat esimerkiksi asentaa HAProxyn RHEL/CentOS/Fedora- ja Debian/Ubuntu-versioihin, suorita seuraava komento. Olen sisällyttänyt tähän myös openssl-paketin, koska aiomme asentaa HAProxyn SSL- ja EI-SSL-tuella.

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

Huomaa: Debian Whezzy 7.0 -versiossa meidän on otettava backports-tietovarasto käyttöön lisäämällä uusi tiedosto backports.list >hakemistossa /etc/apt/sources.list.d/, jossa on seuraava sisältö.

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

Päivitä seuraavaksi arkiston tietokanta ja asenna HAProxy.

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

Vaihe 3: Määritä HAProxy-lokit

4. Seuraavaksi meidän on otettava lokiominaisuus käyttöön HAProxyssa tulevaa virheenkorjausta varten. Avaa HAProxy-päämääritystiedosto /etc/haproxy/haproxy.cfg' valitsemallasi editorilla.

vim /etc/haproxy/haproxy.cfg

Noudata seuraavaksi distrokohtaisia ohjeita lokitoiminnon määrittämiseksi HAProxyssa.

RHEL/CentOS/Fedorassa

Ota seuraava rivi käyttöön kohdassa #Global settings.

log         127.0.0.1 local2
Ubuntussa/Debianissa

Korvaa seuraavat rivit kohdassa #Global settings,

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

Kanssa,

log         127.0.0.1 local2

5. Seuraavaksi meidän on otettava UDP-syslog-vastaanotto käyttöön /etc/rsyslog.conf-määritystiedostossa, jotta voimme erottaa HAProxyn lokitiedostot kohdassa /var/log hakemistosta. Avaa rsyslog.conf-tiedostosi valitsemallasi editorilla.

vim /etc/rsyslog.conf

Uncommnet ModLoad ja UDPServerRun, tässä palvelimemme kuuntelee Port 514 kerätäkseen lokit syslogiin.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. Seuraavaksi meidän on luotava erillinen tiedosto haproxy.conf /etc/rsyslog.d/-hakemistoon määritettäväksi. erilliset lokitiedostot.

vim /etc/rsyslog.d/haproxy.conf

Liitä seuraava rivi juuri luotuun tiedostoon.

local2.*	/var/log/haproxy.log

Käynnistä lopuksi rsyslog-palvelu uudelleen päivittääksesi uudet muutokset.

service rsyslog restart