Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > HAProxy+mysql负载均衡

HAProxy+mysql实现负载均衡实践

作者:搬砖的梦先生

文章简要介绍了HAProxy的安装配置方法,包括准备服务器环境、安装HAProxy、配置balance算法和mysql负载均衡等,最后给出了配置文件示例和查看状态的方法

1、准备

服务器作用
192.168.0.1HAProxy
192.168.0.2mysql
192.168.0.3mysql

HAProxy下载地址:https://www.haproxy.org

2、HAProxy简介

HAProxy 是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于 TCP 和 HTTP 的应用程序代理。

相较与 Nginx,HAProxy 更专注与反向代理,因此它可以支持更多的选项,更精细的控制,更多的健康状态检测机制和负载均衡算法。

haproxy 是工作在四层之上的,这也就意味着它可以代理的服务要比 nginx 更广泛,性能比 nginx 也要更高一些。

相比较 lvs,可配置性又比较好,需要的机器没有 lvs 那么多。因此 haproxy 在一定需求下使用还是不错的。

使用haproxy 来对 mysql 的从节点进行负载均衡。

3、HAProxy 安装

tar -zxvf haproxy-2.7.3.tar.gz 
cd haproxy-2.7.3/
make TARGET=linux31
make install PREFIX=/usr/local/haproxy
cd /usr/local/haproxy/
mkdir conf
cd conf/
cp /home/haproxy/haproxy-2.7.3/examples/option-http_proxy.cfg haproxy.cfg

TARGET参数查看

[root@localhost conf]# uname -r
3.10.0-1160.el7.x86_64

haproxy.cfg 编辑

global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        root
    group       root
    daemon
    stats socket /usr/local/haproxy/stats

defaults
    mode        tcp
    log        global
    option      tcplog
    option      dontlognull
    option      http-server-close
    option      redispatch
    retries                     3
    timeout     http-request    10s
    timeout     queue           1m
    timeout     connect                 10s
    timeout     client          1m
    timeout     server          1m
    timeout     http-keep-alive 10s
    timeout     check           10s
    maxconn                     3000


#客户端配置
listen  admin_status
        mode  http
        bind 0.0.0.0:8899
        option httplog
        log global
        stats enable
        stats refresh 10s
        stats hide-version
        stats realm Haproxy\ Statistics
        stats uri  /admin-status
        stats auth  admin:123456

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

使用地址查看haproxy状态:http://192.168.0.1:8899/admin-status

注意关闭防火墙,或者开放端口

4、balance算法

roundrobin

leastconn:

first:

source:

uri:

static-rr:

url_param

hdr

rdp-cookie

5、mysql负载均衡配置

在haproxy.cfg 中添加以下配置

#配置haproxy可连接的地址,与绑定固定的域名
frontend        mysql
        bind    0.0.0.0:3306
        mode    tcp
        log     global
        default_backend mysql_server

backend         mysql_server
    balance leastconn
    server  mysql1 192.168.0.2:3306 check inter 5s rise 2 fall 3
    server  mysql2 192.168.0.3:3306 check inter 5s rise 2 fall 3
    #rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用

重启haproxy,进入haproxy地址查看mysql状态

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

您可能感兴趣的文章:
阅读全文