首页 > 代码库 > HA实用详解

HA实用详解

  安装HAproxy,先用命令检查内核系统的版本,这里red hat5.5的内核为2.6

[root@localhost ~]# uname -a

Linux localhost.localdomain 2.6.18-8.el5 #1 SMP Fri Jan 26 14:15:21 EST 2007 i686 i686 i386 GNU/Linux

[root@red-hat6-server setup]# tar zxf haproxy-1.4.21.tar.gz 

[root@red-hat6-server setup]# cd haproxy-1.4.21

[root@red-hat6-server haproxy-1.4.21]# make TARGET=linux26 PREFIX=/usr/local/haproxy

[root@red-hat6-server haproxy-1.4.21]# make install PREFIX=/usr/local/haproxy



配置文件介绍:

global

     log 127.0.0.1 local0 notice    //local0是日志设备,info是日志记录级别(err,warning,info,debug),可以在系统日志里查看      

     maxconn 5535         //HAproxy接受的最大连接数,还要注意linux文件接受的最大连接数,用命令"ulimit -n"看以查看,在/etc/security/limit.conf可以永久修改。       

    chroot /usr/local/haproxy  //    

     user nobody  //进程用查看户

     group nobody  //进程组

     nbproc 1    //进程可以创建的进程数,建议小于服务器的cpu数           

     daemon          //后台运行            



defaults

    option httplog  //记录http日志

    mode http   //http模式,不与RFC格式兼容的请求都会被拒绝,还有TCP模式作为4层转发,多用于SSL,SSH,SMTP

    option dontlognull

    retries 3     //连接失败后重试此树                    

    maxconn 5535                     

    timeout connect       5s  //连接后端服务器的最长等待时间

    timeout server            30s     //服务端回应客户端数据发送的最长等待时间

    timeout client              30s    //连接客户端发送数据的最长等待时间

    timeout check 5s                //每5s检验一次后端服务器

    stats refresh 30s   //后端服务器健康状态刷新时间                  

    stats uri  /stats       //通过浏览器可以查看业务状态,例如:www.dragon.com/stats             stats realm baison-test-Haproxy       

    stats auth admin:dragon123   //查看信息时的帐号密码验证       

    stats hide-version      //不显示haproxy的版本信息



frontend www

    bind :80

    #acl 自定义名称 acl方法  -i  [匹配内容]  //-i表示不区分大小写

    acl host_web hdr_reg(host) -i ^(www.dragon.com|dragon)   //匹配域名为"www.dragon.com"或者"dragon.com"的请求

   acl blog hdr(host) -i blog.dragon.com   // 匹配域名为"www.dragon.com"的请求                use_backend webserver if host_web  //将匹配acl条目host_web的请求,分发给webserver

   use_backend blogserver if blog  ////将匹配acl条目blog的请求,分发给blogserver

                                                                                 


backend     webserver          

  mode http

  balance   roundrobin   //负载均衡算法为论掉

  option    redispatch    //保持cookie环境,使客户机的session持久连接。

  option    abortonclose     //在服务器高负载时,自动放弃队列中处理时间较长的连接

  option  httpchk GET /index.html   //通过请求后端http服务的页面,判断状态

  server     web01 192.168.1.115:80  check inter 2000 rise 2  fall  3 weight 10  

  server     web02 192.168.1.116:80  check inter 2000 rise 2 fall 3 weight 10    

//集群webserver里有两台服务器处理请求                                                       //check:请用执行健康状态检查,inter:健康检查时间间隔,默认单位毫秒。rise:从故障转换至正常需要通过的健康检查次数。fall:判定为故障的检查失败次数。weight:后端服务器的权重,0为不参与负载,默认为1,最大值为256.

                                                                                                                                           

backend blogserver

   mode http

   option  redispatch

   option  abortonclose

   option  httpchk GET /index.html

   balance     roundrobin                          

   server     blog01 192.168.1.117:80  check inter 2000 rise 2 fall 3 weight 10

   server     blog02 192.168.1.118:80  check inter 2000 rise 2 fall 3 weight 10


启动haproxy:

[root@localhost ~]# cd /usr/local/haproxy/sbin/

[root@localhost sbin]# ./haproxy -f /usr/local/haproxy/conf/haproxy.cfg



www.dragon.com被分发到192.168.1.115和192.168.1.116


wKioL1SDQLSBEb_MAALvW1PHV5c241.jpg




blog.dragon.com被分发到192.168.117和192.168.1.118

wKiom1SDQMqRl34QAANXWlyzH9I195.jpg


查看后端服务健康状况:

wKioL1SDQLTje-6pAAgUjXBzYwA493.jpg


本文出自 “龙爱雪琪” 博客,转载请与作者联系!

HA实用详解