Búsqueda de sitios web

Cómo configurar el equilibrador de carga de alta disponibilidad con 'HAProxy' para controlar el tráfico del servidor web


HAProxy significa proxy de alta disponibilidad. Es una aplicación gratuita y de código abierto escrita en lenguaje de programación C. La aplicación HAProxy se utiliza como equilibrador de carga TCP/HTTP y para soluciones proxy. El uso más común de la aplicación HAProxy es distribuir la carga de trabajo entre múltiples servidores, por ejemplo, servidor web, servidor de bases de datos, etc., mejorando así el rendimiento general y la confiabilidad del entorno del servidor.

La aplicación altamente eficiente y rápida es utilizada por muchas de las organizaciones de renombre mundial, que incluyen, entre otras, Twitter, Reddit, GitHub y Amazon. Está disponible para plataformas Linux, BSD, Solaris y AIX.

En este tutorial, analizaremos el proceso de configuración de un equilibrador de carga de alta disponibilidad utilizando HAProxy para controlar el tráfico de aplicaciones basadas en HTTP (servidores web) separando las solicitudes entre varios servidores.

Para este artículo, utilizamos la versión estable más reciente de HAProxy, es decir, 1.5.10 lanzada el 31 de diciembre de 2014. Y también utilizamos CentOS 6.5 para este configuración, pero las instrucciones proporcionadas a continuación también funcionan en distribuciones CentOS/RHEL/Fedora y Ubuntu/Debian.

Configuración de mi entorno

Aquí nuestro servidor HAProxy equilibrador de carga tiene un nombre de host como websrv.tecmintlocal.com con dirección IP 192.168.0.125.

Configuración del servidor HAProxy
Operating System	:	CentOS 6.5
IP Address		: 	192.168.0.125
Hostname		: 	websrv.tecmintlocal.com
Configuración de servidores web del cliente

Las otras cuatro máquinas están funcionando con servidores web como 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]

Paso 1: instalar Apache en las máquinas cliente

1. Primero tenemos que instalar Apache en los cuatro servidores y compartir cualquiera de los sitios; para instalar Apache en los cuatro servidores aquí usaremos el siguiente comando.

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

2. Después de instalar el servidor web Apache en las cuatro máquinas cliente, puede verificar si cualquier miembro del servidor Apache se está ejecutando accediendo a él a través de la dirección IP en el navegador.

http://192.168.0.121

Paso 2: Instalar el servidor HAProxy

3. En la mayoría de las distribuciones modernas de Linux actuales, HAPRoxy se puede instalar fácilmente desde el repositorio base predeterminado utilizando el administrador de paquetes predeterminado yum o apt-get . .

Por ejemplo, para instalar HAProxy en las versiones RHEL/CentOS/Fedora y Debian/Ubuntu, ejecute el siguiente comando. Aquí también he incluido el paquete openssl, porque vamos a configurar HAProxy con soporte SSL y NO SSL.

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

Nota: En Debian Whezzy 7.0, debemos habilitar el repositorio de backports agregando un nuevo archivo backports.list en el directorio “/etc/apt/sources.list.d/” con el siguiente contenido.

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

A continuación, actualice la base de datos del repositorio e instale HAProxy.

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

Paso 3: configurar los registros de HAProxy

4. A continuación, debemos habilitar la función de registro en HAProxy para futuras depuraciones. Abra el archivo de configuración principal de HAProxy '/etc/haproxy/haproxy.cfg' con el editor que elija.

vim /etc/haproxy/haproxy.cfg

A continuación, siga las instrucciones específicas de la distribución para configurar la función de registro en HAProxy.

En RHEL/CentOS/Fedora

En #Configuración global, habilite la siguiente línea.

log         127.0.0.1 local2
En Ubuntu/Debian

En #Configuración global, reemplace las siguientes líneas,

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

Con,

log         127.0.0.1 local2

5. A continuación, debemos habilitar la recepción de syslog UDP en el archivo de configuración '/etc/rsyslog.conf' para separar los archivos de registro para HAProxy en /var/log. directorio . Abra su archivo 'rsyslog.conf' con el editor que elija.

vim /etc/rsyslog.conf

Uncommnet ModLoad y UDPServerRun. Aquí nuestro servidor escuchará el puerto 514 para recopilar los registros en syslog.

Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

6. A continuación, necesitamos crear un archivo separado 'haproxy.conf' en el directorio '/etc/rsyslog.d/' para configurar archivos de registro separados.

vim /etc/rsyslog.d/haproxy.conf

Agregue la siguiente línea al archivo recién creado.

local2.*	/var/log/haproxy.log

Finalmente, reinicie el servicio rsyslog para actualizar los nuevos cambios.

service rsyslog restart