Com configurar l'equilibri de càrrega d'alta disponibilitat amb HAProxy per controlar el trànsit del servidor web


HAProxy significa proxy d'alta disponibilitat. És una aplicació gratuïta i de codi obert escrita en llenguatge de programació C. L'aplicació HAProxy s'utilitza com a equilibrador de càrrega TCP/HTTP i per a solucions de proxy. L'ús més comú de l'aplicació HAProxy és distribuir la càrrega de treball entre diversos servidors, per exemple, servidor web, servidor de bases de dades, etc., millorant així el rendiment global i la fiabilitat de l'entorn del servidor.

L'aplicació altament eficient i ràpida és utilitzada per moltes de les organitzacions de renom mundial que inclou, entre d'altres, Twitter, Reddit, GitHub i Amazon. Està disponible per a la plataforma Linux, BSD, Solaris i AIX.

En aquest tutorial, parlarem del procés de configuració d'un equilibrador de càrrega d'alta disponibilitat mitjançant HAProxy per controlar el trànsit d'aplicacions basades en HTTP (servidors web) separant les sol·licituds entre diversos servidors.

Per a aquest article, estem utilitzant la versió estable més recent de la versió HAProxy, és a dir, la 1.5.10 publicada el 31 de desembre de 2014. I també estem utilitzant CentOS 6.5 per a aquesta configuració, però les instruccions que es donen a continuació també funcionen a CentOS/RHEL/ Distribucions Fedora i Ubuntu/Debian.

Aquí el nostre servidor HAProxy d'equilibrador de càrrega té el nom d'amfitrió com a websrv.tecmintlocal.com amb l'adreça IP 192.168.0.125.

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

Les altres quatre màquines estan en funcionament amb servidors web com 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]

Pas 1: instal·lar Apache a les màquines client

1. Primer hem d'instal·lar Apache als quatre servidors i compartir qualsevol lloc, per instal·lar Apache als quatre servidors aquí farem servir la següent comanda.

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

2. Després d'instal·lar el servidor web Apache a les quatre màquines client, podeu verificar qualsevol persona del servidor si Apache s'està executant accedint-hi mitjançant l'adreça IP del navegador.

http://192.168.0.121

Pas 2: instal·lació del servidor HAProxy

3. A la majoria de les distribucions modernes de Linux actuals, HAPRoxy es pot instal·lar fàcilment des del dipòsit base predeterminat mitjançant el gestor de paquets predeterminat yum o apt-get.

Per exemple, per instal·lar HAProxy a les versions RHEL/CentOS/Fedora i Debian/Ubuntu, executeu l'ordre següent. Aquí també he inclòs el paquet openssl, perquè configurarem HAProxy amb suport SSL i NO-SSL.

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

Nota: A Debian Whezzy 7.0, hem d'habilitar el dipòsit de backports afegint un nou fitxer backports.list al directori “/etc/apt/sources.list.d/” amb el contingut següent.

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

A continuació, actualitzeu la base de dades del repositori i instal·leu HAProxy.

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

Pas 3: configureu els registres d'HAProxy

4. A continuació, hem d'habilitar la funció de registre a HAProxy per a una depuració futura. Obriu el fitxer de configuració principal d'HAProxy '/etc/haproxy/haproxy.cfg' amb l'editor que trieu.

# vim /etc/haproxy/haproxy.cfg

A continuació, seguiu les instruccions específiques de la distribució per configurar la funció de registre a HAProxy.

A #Configuració global, activeu la línia següent.

log         127.0.0.1 local2

A #Configuració global, substituïu les línies següents,

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

Amb,

log         127.0.0.1 local2

5. A continuació, hem d'habilitar la recepció del syslog UDP al fitxer de configuració '/etc/rsyslog.conf' per separar els fitxers de registre per a HAProxy al directori /var/log. Obriu el vostre fitxer rsyslog.conf amb l'editor que trieu.

# vim /etc/rsyslog.conf

Uncommnet ModLoad i UDPServerRun, aquí el nostre servidor escoltarà el port 514 per recollir els registres al syslog.

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. A continuació, hem de crear un fitxer separat 'haproxy.conf' al directori '/etc/rsyslog.d/' per configurar fitxers de registre separats.

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

Afegiu la línia següent al fitxer de creació recent.

local2.*	/var/log/haproxy.log

Finalment, reinicieu el servei rsyslog per actualitzar els nous canvis.

# service rsyslog restart