本人系统RedHat6.4 ,HAPROXY版本为haproxy-1.3.15.10.tar.gz
安装
安装PCRE – [iyunv@svr1~]# yum -y install pcre pcre-devel 解压并进入haproxy目录 – [iyunv@svr1~]# tar xvzf haproxy-1.4.24.tar.gz – [iyunv@svr1~]# cd haproxy-1.4.24 查看内核版本号 – [iyunv@svr1~]# uname -r 安装 – [iyunv@svr1~]# make TARGET=linux2628 \ > USE_PCRE=1 PREFIX=/usr/local/haproxy install ( USE_PCRE=1启用正则)
2、
建立haproxy的符号链接 ln -s/usr/local/haproxy/sbin/haproxy \
/usr/local/sbin/
拷贝安装源目录下的示例配置文件至haproxy安装目录下 – [iyunv@svr1~]# mkdir /usr/local/haproxy/conf – [iyunv@svr1~]# cp examples/haproxy.cfg \ > /usr/local/haproxy/conf/haproxy.cfg
3、配置文件
(1)说明
HAProxy配置参数来源 – 命令行。总是具有最高优先级 – global部分。全局设置进程级别参数 – 代理声明部分。来自于default、listen、frontend和backend 配置文件可由如下部分构成: – default 为后续的其他部分设置缺省参数 缺省参数可以被后续部分重置 – frontend 描述接收客户端侦听套接字(socket)集 – backend 描述转发链接的服务器集 – listen 把frontend和backend结合到一起的完整声明 (2)示例
global //全局设置 log 127.0.0.1 local0 //日志输出配置
maxconn 4096 //最大连接数 并发链接
chroot /usr/local/haproxy
uid 99 //所属运行的用户uid
gid 99 //所属运行的用户组
daemon //以后台形式运行 守护进程
nbproc 2 //启动2个haproxy实例 和cpu个数有关
pidfile /usr/local/haproxy/run/haproxy.pid run的创建
defaults //默认设置 log global
mode http //默认采用http模式 3种:http tcp health
option httplog //日志类别
retries 3 //3次连接失败认为服务器不可用
option redispatch //当serverid对应的服务器挂掉后,
//强制定向到其他健康服务器
stats uri /haproxy-admin //设置监控 监控目录随便起名
contimeout 5000 //连接超时时间
clitimeout 50000 //客户端连接超时时间
srvtimeout 50000 //服务器端连接超时时间
listen websrv-rewrite 0.0.0.0:80 //监听的地址,可以写haproxy的地址,也可以写成0.0.0.0,监听本地全部地址
cookie SERVERID rewrite
balance roundrobin 负载平衡的方式
server app1_1 192.168.20.101:80cookie app1inst1 check inter 2000 rise 2 fall 5 weight 1 (realserver) 心跳检测频率:2000微秒 检测5次失败证明他挂啦
server app1_2 192.168.20.102:80cookie app1inst2 check inter 2000 rise 2 fall 5 weight 1
//web服务器真实ip地址,并配置好web服务
4、控制服务器状态
启动服务 – [iyunv@svr1~]# haproxy -f \ > /usr/local/haproxy/conf/haproxy.cfg
停止服务 – [iyunv@svr1~]# killall haproxy 重启服务 – [iyunv@svr1~]# haproxy -f haproxy.cfg \ > -st `pidof haproxy` 得到pid重启
5、监控HAProxy状态
http://192.168.194.10/haproxy-admin
|