1.下载haproxy安装包。
网站:http://download.openpkg.org/components/cache/haproxy/
我下载了haproxy1.8.6
把压缩包上传到 /usr/local/src 目录里面
2.安装haproxy
#进入haproxy压缩包的目录
cd /usr/local/src
#解压
tar -zxvf haproxy-1.8.6.tar.gz
#进入haproxy文件夹
cd haproxy-1.8.6
#确认linux系统内核
uname -r
(3.10.0-1062.9.1.el7.x86_64)
#centos7内核的系统,对应linux31,centos6是对应linux26
make TARGET=linux31
#开始安装
make install PREFIX=/usr/local/haproxy
#创建目录
mkdir /usr/local/haproxy/logs
#拷贝默认配置文件
cp examples/option-http_proxy.cfg /usr/local/haproxy/haproxy.cfg
3.配置文件
主要是一些安装目录的配置需要注意,其他就是应用业务的配置了。
global
maxconn 51200
chroot /usr/local/haproxy
uid 99
gid 99
daemon
#quiet
nbproc 1 #进程数
pidfile /usr/local/haproxy/logs/haproxy.pid
defaults
log 127.0.0.1 local0 err #[err warning info debug]
mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
retries 2 #两次连接失败就认为是服务器不可用,也可以通过后面设置
option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
option dontlognull #日志中不记录负载均衡的心跳检测记录
maxconn 4096 #默认的最大连接数
timeout connect 5000ms #连接超时
timeout client 30000ms #客户端超时
timeout server 30000ms #服务器超时
#timeout check 2000 #=心跳检测超时
######## 监控界面配置 #################
listen admin_stats
#监控界面的访问的IP和端口
bind 0.0.0.0:8888
#访问协议
mode http
#URI相对地址
stats uri /dbs
#统计报告格式
stats realm Global\ statistics
#登陆帐户信息
stats auth admin:admin
########frontend配置##############
#mycat负载均衡
listen proxy-mycat
#访问的IP和端口
bind 0.0.0.0:9000
#网络协议
mode tcp
#负载均衡算法(轮询算法)
#轮询算法:roundrobin
#权重算法:static-rr
#最少连接算法:leastconn
#请求源IP算法:source
balance roundrobin
# 这里是容器中的IP地址,由于配置的是轮询roundrobin,weight 权重其实没有生效
server mycat_01 192.168.3.220:8066 check weight 1 maxconn 2000
server mycat_02 192.168.3.237:8066 check weight 1 maxconn 2000
# 使用keepalive检测死链
option tcpka
4.脚本以及开机自启等
#编写脚本
vim /etc/rc.d/init.d/haproxy
脚本内容:
#!/bin/bash
#chkconfig: 2345 10 90
#description:haproxy
BASE_DIR="/usr/local/haproxy"
ARGV="$@"
start()
{
echo "START HAPoxy SERVERS"
$BASE_DIR/sbin/haproxy -f $BASE_DIR/haproxy.cfg
}
stop()
{
echo "STOP HAPoxy Listen"
kill -TTOU $(cat $BASE_DIR/logs/haproxy.pid)
echo "STOP HAPoxy process"
kill -USR1 $(cat $BASE_DIR/logs/haproxy.pid)
}
case $ARGV in
start)
start
ERROR=$?
;;
stop)
stop
ERROR=$?
;;
restart)
stop
start
ERROR=$?
;;
*)
echo "hactl.sh [start|restart|stop]"
esac
exit $ERROR
然后,
#赋予脚本权限
chmod +x /etc/rc.d/init.d/haproxy
#设置开机自启动
chkconfig --add haproxy
启停命令:
#启动
service haproxy start
#停止
service haproxy stop
#重启
service haproxy restart
#强制杀死
killall haproxy
最后,可以访问haproxy的监控平台,来查看是否启动成功。
如:192.168.3.237:8888/dbs 账户密码:admin/admin
注意端口是否以开放。
成功之后,就可以通过本地端口9000(我配置的)代理两个mycat了。