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