下载

HA Proxy

编译,安装

这里以1.6.4版本,ubuntu 14.04 LTS ,解压后的目录为/ihome/haproxy/haproxy-1.6.4,安装目录为/ihome/haproxy/haproxy

编译:

make -j8  TARGET=linux2628 PREFIX=/ihome/haproxy/haproxy
make install PREFIX=/ihome/haproxy/haproxy

配置HA

这里结合 RabbitMQ 为例子,进行HA配置.

进入安装目录 cd /ihome/haproxy/haproxy

创建配置文件 touch rabbitmq.cfg

加入以下内容

###########全局配置#########
global
        daemon  # 守护进程模式
        nbproc 1 #后台进程数,这个要求是 daemon 
        pidfile haproxy.pid


########默认配置############
defaults
        mode tcp               #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
        retries 2               #两次连接失败就认为是服务器不可用,也可以通过后面设置
        option redispatch       #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
        option abortonclose     #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
        maxconn 4096            #默认的最大连接数
        timeout connect 5000ms  #连接超时
        timeout client 30000ms  #客户端超时
        timeout server 30000ms  #服务器超时
        #timeout check 2000      #=心跳检测超时
        log 127.0.0.1 local0 err #[err warning info debug]


########统计页面配置########
listen haproxy-admin
        bind 0.0.0.0:9990               #监听端口
        mode http                       #http的7层模式
        option httplog                  #采用http日志格式
        #log 127.0.0.1 local0 err
        maxconn 5
        stats refresh 30s               #统计页面自动刷新时间
        stats uri /stats                #统计页面url
        stats realm XingCloud\ Haproxy  #统计页面密码框上提示文本
        stats auth admin:admin          #统计页面用户名和密码设置
        stats hide-version              #隐藏统计页面上HAProxy的版本信息

########rabbitmq配置#################
listen test1
        bind 0.0.0.0:9991
        mode tcp
        #maxconn 4086
        #log 127.0.0.1 local0 debug

        #以下三个是同一个集群里的三个节点.
        server s1 localhost:5672
        server s2 localhost:5673
        server s3 localhost:5674

HAProxy监控后台 admin

平滑重启HA proxy

./sbin/haproxy -f rabbitmq.cfg -sf `cat haproxy.pid`

RabbitMQ的集群,请参考我的另一篇Blog RabbitMQ的集群

参考资料