安装HAproxy,先用命令检查内核系统的版本,这里red hat5.5的内核为2.6
[[email protected] ~]# 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 [[email protected] setup]# tar zxf haproxy-1.4.21.tar.gz [[email protected] setup]# cd haproxy-1.4.21 [[email protected] haproxy-1.4.21]# make TARGET=linux26 PREFIX=/usr/local/haproxy [[email protected] 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:
[[email protected] ~]# cd /usr/local/haproxy/sbin/
[[email protected] sbin]# ./haproxy -f /usr/local/haproxy/conf/haproxy.cfg
www.dragon.com被分发到192.168.1.115和192.168.1.116
blog.dragon.com被分发到192.168.117和192.168.1.118
查看后端服务健康状况:
本文转自:维斯亚综合论坛:http://www.w4ya.com/forum.php