MySql负载均衡集群-haprox介绍及安装

一、haproxy下载 
去官网:http://www.haproxy.org/下载 
或者在选择好版本后,使用wget下载,比如这里使用的是1.7.5

wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.5.tar.gz
  • 二、安装haproxy 

查看内核版本

uname -r
  • 这里写图片描述

根据内核版本选择编译参数: 
MySql负载均衡集群-haprox介绍及安装_第1张图片

关于编译参数更详细的参见:https://github.com/haproxy/haproxy

解压haproxy,并安装

tar xf haproxy-1.7.5.tar.gz
cd haproxy-1.7.5
make TARGET=linux2628 PREFIX=/usr/local/haproxyyum install gcc-c++
make install PREFIX=/usr/local/haproxy
  • 安装成功后,查看版本

/usr/local/haproxy/sbin/haproxy -v

复制haproxy文件到/usr/sbin下 

因为下面的haproxy.init启动脚本默认会去/usr/sbin下找,当然你也可以修改,不过比较麻烦。

cp /usr/local/haproxy/sbin/haproxy /usr/sbin/
  • 复制haproxy脚本,到/etc/init.d下
cp ./examples/haproxy.init /etc/init.d/haproxy
chmod 755 /etc/init.d/haproxy
  • 创建系统账号
useradd -r haproxy
  • 创建配置文件
mkdir /etc/haproxy
vi /etc/haproxy/haproxy.cfg
  • 在配置文件haproxy.cfg中添加如下设置:

在配置文件haproxy.cfg中添加如下设置:

#全局配置
global
    #设置日志
    log 127.0.0.1 local3 info
    chroot /usr/local/haproxy
    #用户与用户组
    user haproxy
    group haproxy
    #守护进程启动
    daemon
    #最大连接数
    maxconn 4000

#默认配置
defaults
    log global
    mode http
    option httplog
    option dontlognull
    timeout connect 5000
    timeout client 50000
    timeout server 50000

#前端配置,http_front名称可自定义
frontend http_front
    # 发起http请求道80端口,会被转发到设置的ip及端口
    bind *:80
    #haproxy的状态管理页面,通过/haproxy?stats来访问
    stats uri /haproxy?stats
    default_backend http_back

#后端配置,http_back名称可自定义
backend http_back
    #负载均衡方式
    #source 根据请求源IP
    #static-rr 根据权重
    #leastconn 最少连接者先处理
    #uri 根据请求的uri
    #url_param 根据请求的url参数
    #rdp-cookie 据据cookie(name)来锁定并哈希每一次请求
    #hdr(name) 根据HTTP请求头来锁定每一次HTTP请求
    #roundrobin 轮询方式
    balance roundrobin
    #设置健康检查页面
    option httpchk GET /index.html
    #传递客户端真实IP
    option forwardfor header X-Forwarded-For
    # inter 2000 健康检查时间间隔2秒
    # rise 3 检测多少次才认为是正常的
    # fall 3 失败多少次才认为是不可用的
    # weight 30 权重
    # 需要转发的ip及端口
    server node1 192.168.179.131:8081 check inter 2000 rise 3 fall 3 weight 30
    server node2 192.168.179.131:8082 check inter 2000 rise 3 fall 3 weight 30
  • 打开rsyslog配置:
vi /etc/rsyslog.conf
  • 去掉下面两行前面的#号
$ModLoad imudp
$UDPServerRun 514
  • 并添加下面一行
local3.* /var/log/haproxy.log
  • 重启rsyslog
systemctl restart rsyslog
# centos 6 中木有systemctl命令,可以使用下面的命令
# service rsyslog restart

启动haproxy

service haproxy start

启动成功后,界面如下:


haproxy.cfg中设置参考

MySql负载均衡集群-haprox介绍及安装_第2张图片

HAProxy的算法有如下8种
一、roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;
二、static-rr,表示根据权重;
三、leastconn,表示最少连接者先处理;
四、source,表示根据请求源IP;
五、uri,表示根据请求的URI;
六、url_param,表示根据请求的URl参数'balance url_param' requires an URL parameter name
七、hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;

八、rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。


前端访问配置

listen haproxy_stats #定义Haproxy监控

        bind 0.0.0.0:8080

        mode http

        log global

        stats enable

        stats refresh 5s #页面刷新间隔为5s

        stats realm Haproxy\ Statistics

        stats uri /haproxy_stats #监控页面的URL

        stats hide-version

        stats auth haproxy:abc-123 #指定监控页面登陆的用户名和密码

frontend haproxy_web #定义客户端访问的前端服务器

        bind 0.0.0.0:80 #定义监听的套接字

        mode http

        log global

        option httplog #启用http日志

        option httpclose #每次请求完毕后,关闭http通道



你可能感兴趣的:(MySQL大型分布式集群)