Instalar HAProxy (balanceador HTTP SMTP TCP)
El HAProxy es un balanceador TCP que se suele usar para peticiones HTTP pero se puede usar para cualquier protocolo TCP. Vamos a ver como instalarlo y como configurarlo:
Primero de todo lo descargamos y lo compilamos:
cd /usr/local/src/ wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz tar xzf haproxy-1.4.8.tar.gz cd haproxy-1.4.8 make TARGET=linux26 make install
A continuación preparamos el entorno para usarlo con chroot y daemontools:
mkdir /usr/local/supervise/haproxy -p mkdir -p /usr/local/chroot/haproxy/ useradd haproxy cat <<EOF > /usr/local/supervise/haproxy/run #!/bin/bash exec /usr/local/sbin/haproxy -f /usr/local/etc/haproxy.cfg EOF chmod +x /usr/local/supervise/haproxy/run ln -s /usr/local/supervise/haproxy/ /service/
Para indicar a que id debe cambiar el proceso hacemos un id al usuario haproxy que acabamos de crear y nos quedamos con el valor numérico:
# id haproxy uid=508(haproxy) gid=508(haproxy) groups=508(haproxy)
Vamos a ver a continuación como configurarlo (mediante el fichero /usr/local/etc/haproxy.cfg) para repartir conexiones entre tres servidores de correo con una distribución de: 40%, 25% y 35%:
global uid 508 gid 508 chroot /usr/local/chroot/haproxy log 127.0.0.1 local0 log 127.0.0.1 local1 notice maxconn 32000 defaults log global mode tcp option dontlognull retries 3 option redispatch option smtpchk maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen push 0.0.0.0:25 mode tcp balance roundrobin server spamer1 10.10.1.1:25 check weight 40 server spamer2 10.10.1.2:25 check weight 25 server spamer3 10.10.1.3:25 check weight 35
Las directivas siguientes son las mas relevantes:
- chroot /usr/local/chroot/haproxy: Indica a HAProxy que haga un chroot en el path que se le indica
- option smtpchk: Realiza un inicio de sesión SMTP para comprobar el estado del servidor. También se pueden hacer una petición HTTP mediante httpchk
- balance roundrobin: Define el modo en que reparte las peticiones, en este caso puramente roundrobin, pero también puede ser por el servidor con menos conexiones (leastconn) o incluso inspeccionando el protocolo HTTP
- server spamer1 10.10.1.1:25 check weight 40: Define los backends a los que repartir las conexiones, en este caso indica que se le deben repartir un 40% de las peticiones
En la documentación de HAProxy se pueden encontrar todas las directivas detalladas.
Relacionados
Imprimir
25. October 2010 at 10:18 pm :
Tengo problemas con esta línea….
ln -s /usr/local/supervise/haproxy/ /service/
No entiendo donde se esta creando este enlace….
26. October 2010 at 6:34 am :
Es para usar el HAproxy con daemontools
saludos!