objetivo

mostrar exemplos de uso do HAProxy

especialista

guto

balanceando HTTP e HTTPS para servidores Apache2
haproxy.conf
  global  
          log 127.0.0.1   local0
          log 127.0.0.1   local1 notice info debug
          maxconn 12000 # numero maximo de conexoes que ele vai atender
          user haproxy
          group haproxy
          daemon
          nbproc  2 # numero de processadores
 
  defaults
          mode     tcp
          option tcplog
          log      global
          contimeout      5000
          clitimeout      50000
          srvtimeout      50000
 
  listen  blogplan 192.168.20.249:80,192.168.20.249:443
 
          mode            tcp 
          balance         roundrobin
          option          ssl-hello-chk
          option          persist
          option          tcplog
          option          socket-stats
          server          blogapp01 192.168.20.243 weight 1 maxconn 3000 inter 2s rise 2 fall 3 check
          server          blogapp02 192.168.20.244 weight 1 maxconn 3000 inter 2s rise 2 fall 3 check
          server          blogapp03 192.168.20.245 weight 1 maxconn 3000 inter 2s rise 2 fall 3 check
          server          blogapp04 192.168.20.246 weight 1 maxconn 3000 inter 2s rise 2 fall 3 check
balanceando varias portas em modo TCP
haproxy.conf
  global
          log 127.0.0.1   local0
          log 127.0.0.1   local1 notice info
          maxconn 25000   # numero maximo de conexoes que ele vai atender
          user haproxy
          group haproxy
          daemon
          nbproc  2 # numero de processadores
 
  defaults
          contimeout      5000
          clitimeout      50000
          srvtimeout      50000
          retries  3
          option tcplog
 
  listen  eleicoes :1098,:1099,:3873,
          mode     tcp
          option   tcplog
          option   socket-stats
          balance  roundrobin
          server   ejb01 192.168.50.32 weight 2 maxconn 5000 inter 2s rise 2 fall 3 check
          server   ejb02 192.168.50.34 weight 1 maxconn 5000 inter 2s rise 2 fall 3 check
          server   ejb03 192.168.50.34 weight 1 maxconn 5000 inter 2s rise 2 fall 3 check
          server   ejb04 192.168.50.34 weight 1 maxconn 5000 inter 2s rise 2 fall 3 check
          server   ejb05 192.168.50.34 weight 1 maxconn 5000 inter 2s rise 2 fall 3 check
roundrobin com failover/backup

Temos 4 máquinas no pool de balanceamento por roundrobin, se uma destas máquinas sair do ar a quinta máquina, marcada como backup entra no pool e assume o lugar da que está fora, isso é muito bom em caso de manutenção ou incidente.

haproxy.conf
  global
          log 127.0.0.1   local0
          log 127.0.0.1   local1 notice info
          stats socket /var/run/haproxy/haproxy.sock mode 0600 level admin
          maxconn 10000
          user haproxy 
          group haproxy  
          daemon
          nbproc  2 # proc number
 
  defaults
          log      global
          contimeout      5000
          clitimeout      50000
          srvtimeout      50000
 
  listen  eleicoes :80,:8080,:1098,:1099,:3873,:1100
          mode            tcp
          option          tcplog
          option          socket-stats
          balance         roundrobin
          server          ejb01 192.168.50.35 check inter 2s rise 2 fall 3
          server          ejb02 192.168.50.35 check inter 2s rise 2 fall 3
          server          ejb03 192.168.50.35 check inter 2s rise 2 fall 3
          server          ejb04 192.168.50.35 check inter 2s rise 2 fall 3
          server          ejb05 192.168.50.38 backup check inter 2s rise 2 fall 3
diretivas server
check,      verifica se a porta esta aberta no servidor do pool
backup,     essa maquina só vai entrar se uma instancia do pool estiver fora
inter 2s,   significa que ele fará checagens a cada 2 segundos
rise 2,     significa que a maquina só volta para o pool se tiver 2 checagens positivas em in
fall 3,     significa que a maquina só sairá do pool se tiver pelo menos 3 checagens negativas
maxconn,    numero maximo de conexoes que uma instancia deve receber
weight,     peso que a instancia terá no pool, quando maior mais conexoes vao para ele
instalando HATOP para ter estatisticas do HAPROXY

necessário instalar o HAPROXY 1.4 via apt-pinning, Python2.4 e python-virtualenv

aptitude install haproxy/testing
aptitude install python2.4 python-virtualenv
wget http://hatop.googlecode.com/files/hatop-0.7.6.tar.gz
tar zxvf hatop-0.7.6.tar.gz
cd hatop-0.7.6.tar.gz
install -m 755 bin/hatop /usr/local/bin

para ver se está instalado certinho rode o comando

hatop

agora vamos configurar o HAPROXY para gerar as estatísticas, insira a linha baixo na seção global.

stats socket /var/run/haproxy/haproxy.sock mode 0600 level admin

crie o diretório haproxy

mkdir /var/run/haproxy

reinicie o haproxy

/etc/init.d/haproxy restart

entrando no hatop

hatop -s /var/run/haproxy/haproxy.sock
referencias

haproxy

http://haproxy.1wt.eu/
http://code.google.com/p/haproxy-docs/
http://www.goitworld.com/haproxy-performance-tuning/
http://agiletesting.blogspot.com/2009/03/haproxy-and-apache-performance-tuning.html 

hatop

http://feurix.org/projects/hatop/

apt-pinning

http://jaqque.sbih.org/kplug/apt-pinning.html


haproxy_exemplos.txt · Last modified: 2010/11/19 19:11 by gutocarvalho
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0