• 安装 HAProxy 配置负载均衡
    时间:2009-07-25   作者:佚名   出处:互联网

    据说 HAProxy 可以做负载均衡,同时还可对服务器健康检测,有 down 机的自动停止分发,当服务器正常后,又自动均衡到刚死过的服务器。之前用 nginx ,现试用下 haproxy 。

    下载:haProxy 1.3.15 http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.15.7.tar.gz

    安装:

       1. cd /home/chenlb 
       2. wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.15.7.tar.gz 
       3. tar -zxvf haproxy-1.3.15.7.tar.gz 
       4. cd haproxy-1.3.15.7 
       5. make TARGET=linux26 PREFIX=/home 
       6. make install PREFIX=/home 
       7.  
       8. cd /home/haproxy 
       9. vi haproxy.cfg 

    cd /home/chenlb
    wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.15.7.tar.gz
    tar -zxvf haproxy-1.3.15.7.tar.gz
    cd haproxy-1.3.15.7
    make TARGET=linux26 PREFIX=/home
    make install PREFIX=/home

    cd /home/haproxy
    vi haproxy.cfg

    创建/修改配置haproxy.cfg:

       1. global 
       2.         log 127.0.0.1   local0 
       3.         #log 127.0.0.1  local1 notice 
       4.         #log loghost    local0 info 
       5.         maxconn 4096 
       6.         chroot /home/haproxy 
       7.         uid 99 
       8.         gid 99 
       9.         daemon 
      10.         nbproc 1 
      11.         pidfile /home/haproxy/logs/haproxy.pid 
      12.         #debug 
      13.         #quiet 
      14.  
      15. defaults 
      16.         log     127.0.0.1       local3 
      17.         mode    http 
      18.         option  httplog 
      19.         option  httpclose 
      20.         option  dontlognull 
      21.         option  forwardfor 
      22.         option  redispatch 
      23.         retries 2 
      24.         maxconn 2000 
      25.         balance roundrobin 
      26.         stats   uri     /haproxy-stats 
      27.         contimeout      5000 
      28.         clitimeout      50000 
      29.         srvtimeout      50000 
      30.  
      31. listen  web_proxy 0.0.0.0:1080 
      32.         option  httpchk GET /ping.jsp 
      33.  
      34.         server  s1 192.168.0.101:8080 weight 3 check 
      35.         #server s2 192.168.0.102:8080 weight 3 check 
      36.         server  s3 192.168.0.103:8080 weight 3 check 

    global
            log 127.0.0.1   local0
            #log 127.0.0.1  local1 notice
            #log loghost    local0 info
            maxconn 4096
            chroot /home/haproxy
            uid 99
            gid 99
            daemon
            nbproc 1
            pidfile /home/haproxy/logs/haproxy.pid
            #debug
            #quiet

    defaults
            log     127.0.0.1       local3
            mode    http
            option  httplog
            option  httpclose
            option  dontlognull
            option  forwardfor
            option  redispatch
            retries 2
            maxconn 2000
            balance roundrobin
            stats   uri     /haproxy-stats
            contimeout      5000
            clitimeout      50000
            srvtimeout      50000

    listen  web_proxy 0.0.0.0:1080
            option  httpchk GET /ping.jsp

            server  s1 192.168.0.101:8080 weight 3 check
            #server    s2 192.168.0.102:8080 weight 3 check
            server  s3 192.168.0.103:8080 weight 3 check

    启动 haproxy:

    sbin/haproxy -f haproxy.cfg

    haproxy 192.168.0.100 分发到 192.168.0.101, 192.168.0.103 (故意down掉)。

    可以打开 stats 看,http://192.168.0.100:1080/haproxy-stats

    如果修改 haproxy.cfg 配置,想重启 haproxy 用 kill -HUP `cat logs/haproxy.pid` 是不行的。必须使用 -sf 或 -st 参数,如:

    sbin/haproxy -f haproxy.cfg -st `cat logs/haproxy.pid `

    #./haproxy –help //haproxy相关命令参数介绍.
    haproxy  -f  <配置文件>  [-n 最大并发连接总数] [-N 每个侦听的最大并发数] [-d] [-D] [-q] [-V] [-c] [-p] [-s] [-l] [-dk] [-ds] [-de] [-dp] [-db] [-m <内存限制M>] [{-sf|-st} pidlist...]
            -d     前台,debug模式
            -D     daemon模式启动
            -q     安静模式,不输出信息
            -V     详细模式
            -c     对配置文件进行语法检查
            -s     显示统计数据
            -l     显示详细统计数据
            -dk    不使用kqueue
            -ds    不使用speculative epoll
            -de    不使用epoll
            -dp    不使用poll
            -db    禁用后台模式,程序跑在前台
            -sf    程序启动后向pidlist里的进程发送FINISH信号,这个参数放在命令行的最后
            -st    程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后

    但配置后,死活不会输出日志,还没找到解决方法,网上有些,但行不通:

    syslog.conf里加一行
    local3.*         /var/log/haproxy.log

    # killall -HUP syslogd 重启 syslogd

    # touch /var/log/haproxy.log
    # chmod 777 /var/log/haproxy.log

    # tail –f /var/log/harpoxy.log 监控日志

    # ./haproxy -f haproxy.cfg 启动服务.

    haproxy 还可以用 nginx 的配置,请看:http://www.igvita.com/2008/05/13/load-balancing-qos-with-haproxy/

    网友留言/评论

    我要留言/评论