实验准备
- haproxy 安装包:haproxy-1.7.8.tar.gz,下载地址:https://src.fedoraproject.org/repo/pkgs/haproxy/
- 主机准备
主机 | IP |
---|---|
haproxy | 192.168.56.121 |
sharding-proxy1 | 192.168.56.119 |
sharding-proxy2 | 192.168.56.120 |
安装haproxy
- 安装依赖包
yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel
- 将下载下来的安装包上传到/usr/local/src/目录下并解压
cd /usr/local/src/
rz
tar -zxvf haproxy-1.7.8.tar.gz #解压
mv haproxy-1.7.8 haproxy #重命名
- 安装
cd /usr/local/src/haproxy
make TARGET=linux26 #此处需要指定TARGET参数才可安装,后面具体的值请参照下图,具体可查询解压/usr/local/src/haproxy/README文件
make install PREFIX=/usr/local/haproxy #PREFIX指定安装路径
- 修改配置文件
vim /usr/local/haproxy/etc/haproxy.cfg
global
daemon # 后台方式运行
nbproc 1
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]
balance roundrobin # 采用轮询算法
################# 配置#################
listen delegate #这里是配置负载均衡,test1是名字,可以任意
bind 0.0.0.0:3307 #这里是监听的IP地址和端口,端口号可以在0-65535之间,要避免端口冲突
mode tcp #连接的协议,这里是tcp协议
#maxconn 4086
#log 127.0.0.1 local0 debug
server s1 192.168.56.119:3307 #负载的MySQL实例1
server s2 192.168.56.120:3307 #负载的MySQL实例2 可以有多个,往下排列即
- 配置日志及新建pid存放的目录
vim /etc/rsyslog.conf
$ModLoad imudp # 取消这两句注释,否则不能收到日志信息
$UDPServerRun 514
local2.* /var/log/haproxy.log # 将日志记录到该地
mkdir /usr/local/haproxy/logs
- 启动
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/etc/haproxy.cfg 启动
ps -ef |grep haproxy #查看状态
启动另外两台服务的sharding-proxy
可以看之前博客。
查看
连接192.168.56.121的3307端口,可以看到两台服务轮询负载。