Haproxy
Haproxy
Por:
Oswaldo Eche
INDICE
1. Diagrama de Implementación............................................................................3
2. Requerimientos:...................................................................................................3
II. implementación de servidor linux/GNU..............................................................4
IX. Pruebas.....................................................................................................................14
Página 2
Documento preparado para MINEM
Implementación de HA-Proxy
172.25.1.50
172.25.1.60
1. Diagrama de Implementación
2. Requerimientos:
Sistema operativo CentOS Linux release 7.6.
Memoria Ram 8 GB
Espacio de Disco interno 50GB (HDD)
Interfaces de Red 2 (1 en la red Interna y 1 en la red DMZ)
Página 3
Documento preparado para Pacífico Seguros
Página 4
Documento preparado para MINEM
Página 5
Documento preparado para Pacífico Seguros
Página 6
Documento preparado para MINEM
Página 7
Documento preparado para Pacífico Seguros
Página 8
Documento preparado para MINEM
1. Implementación de Servicio
El servicio haproxy es parte del paquete “haproxy” que podemos instalar via yum
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
stats socket /var/lib/haproxy/stats
daemon
log : Direccion IP y facility que utilizara el demonio para guardar registros via
Syslog
chroot : Ruta de ejecucion y enjaulamiento del demonio
pidfile : Ruta del archivo PID
maxconn : Numero maximo de conexiones concurrentes que aceptara el demonio
Página 9
Documento preparado para Pacífico Seguros
defaults
mode http
maxconn 3000
option dontlognull
option http-server-close
option redispatch
retries 3
timeout http-request 1m
timeout queue 1m
timeout connect 10s
timeout client 10m
timeout server 10m
timeout http-keep-alive 10s
timeout check 10s
tcplog
mode : El modo default en el cual trabajaran los frontend, backend y listen, puede
ser tcp o http
maxconn *: Cantidad maxima de conexiones para cada frontend, backend o listen *
option dontlognull : Evita que se registre en los logs repuestas nulas o vacias
option http-server-close : Fuerza el cierre de la conexion una vez que se
recibio la respuesta del servidor backend
option redispatch : Activa la redistribución de sesión en caso de fallo de
conexión
retries : Numero de intentos sobre un servidor luego de un fallo de conexion
timeout http-request *: Tiempo de espera para recibir la respuesta HTTP
completa *
timeout queue : Tiempo de espera para las conexiones que estan en espera
timeout connect : Tiempo de espera para que el servidor acepte la conexion
timeout client : Tiempo maximo de inactividad del lado del cliente
timeout server : Tiempo maximo de inactividad del lado del servidor
timeout http-keep-alive : Tiempo máximo de espera para reutilizar una
conexion HTTP
Página 10
Documento preparado para MINEM
timeout check : Tiempo máximo de espera para que los servidores respondan los
chequeos luego de abrir la conexión
tcplog : Modo de logueo, los más utilizados son tcplog y httplog, tcplog registra
las peticiones y que nodo atendió la misma, httplog registra la URL solicitada por
el cliente
Definición de frontend
El frontend es la parte de en la cual se especifica el tipo de aplicacion, los puertos
y direcciones IP en las que escuchara el servicio, tambien se establecen las
primeras reglas para las conexiones, elfrontend sería el encargado de recibir las
conexiones de los clientes.
Definición de backend
La configuración backend es donde se determinan cuáles son los nodos, cuáles
son los métodos de chequeo de vida y cuáles son las opcion o métodos de
balanceo
Definición de listen
La configuración liste es una mezcla entre frontend y backend, dentro del listen se
establecen las direcciones IPs y puertos donde se escuchan y a la vez se
determinan cuáles son los nodos, a diferencias del frontend tiene ciertas
limitaciones a la hora de tener varios backends basándose en la url para
discriminar a que backend debe ir
Página 11
Documento preparado para Pacífico Seguros
DMZ
Interna
RoundRobin
roundrobin se distribuyen de manera equitativa, pero para realizarlo, los nodos
deben de tener las mismas características.
Source
Por fuente, esté es de los menos eficientes ya que consiste en utilizar la dirección
ip para generar un hash y va a tener conexión con alguno de los nodos no
importando cuál de ellos responda, si esa misma dirección ip vuelve a realizar otra
solicitud el mismo nodo que le contestó por primera vez tiene la obligación de
responderle; este método se vuelve eficiente porque se puede cargar a un nodo
más que otro bajando el rendimiento del balanceo
Página 12
Documento preparado para MINEM
LeastConn
El balanceo por menos conexiones, como su nombre lo dice buscará dentro de los
nodos al nodo que tenga menos solicitudes y las mandará hasta que los otros
nodos terminen y se vuelvan los nodos con menos conexiones.
5. Configuración de Servicio
a continuación, se detalla el archivo de configuración del servicio
Página 13
Documento preparado para Pacífico Seguros
6. implementación de estadísticas
Se implemento el servicio de monitoreo para el sistema de monitoreo
Para el ingreso de puede hacer mediante el puerto 8080
7. Pruebas
Se adjuntan pruebas de conexión
Página 14
Documento preparado para MINEM
Página 15