冠亚体育手机网站:Mysql的Haproxy反向代理和负载均衡

   
 HaProxy提供高可用性、负载均衡以及依据TCP和HTTP应用的代理,补助设想主机,它是免费、神速何况可信的一种缓和方案。应用到Haproxy主倘使因为她无偿,而且遵照TCP和HTTP的使用代理。

  先介绍一下Haproxy的利用场景,多少个是TCP代理,那边也是自笔者项目中央银行使的,另多少个是HTTP代理,小编就回顾介绍一下。基于Tcp合同的Haproxy代理应用场景:在VPC网络景况下,虚机A的数据库不可能被外面互联网访谈到,只可以被在长久以来内网情状下的虚机B访谈,这时候能够经过在虚机B上搭建Haproxy遇到,通过Haproxy代理完毕外界虚机C对虚机A数据库的访谈;这里小编项目中其实使用到的现象是那般的,在国有云上创制LacrosseDS实例,会有VPC网络和Classic网络,在甄选VPC网络创立PAJERODS后,在打开数量同步时,会对该奥迪Q3DS数据库实行数量同步,那时候由于奥迪Q3DS的数据库在VPC网络情况下,外网是无法一直访谈这么些OdysseyDS数据库。那时候大家使用的是用一个ECS云服务器上搭建一个Haproxy代理,公网通过haproxy代理访问这一个普拉多DS数据库,那样就消除了VPC网络的寻访谈题;

  基于HTTP合同的Haproxy代理应用场景:客户访谈网址域名时,通过大家设置的Haproxy代理,HTTP央求到后端配置的web服务器上,获得后方服务器重临的开始和结果后再一次包装,响应给客商端;就不啰嗦了,直接来干货,应用haproxy代理访谈后端mysql数据库(这里不肯定是mysql数据库)。

(一)Haproxy下载、安装:网络的财富都要积分,所以从来在yum上找免费能源。

yum install -y haproxy
rpm -qi haproxy
rpm -ql haproxy

冠亚体育手机网站,(二)配置haproxy.cfg文件(重点)

cd /etc/haproxy
vim haproxy.cfg

#配置的haproxy.cfg文件
global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
        log     global
        log 127.0.0.1 local3
        mode    http
        option httplog
        option  dontlognull
        retries 10
        option redispatch
        maxconn         2000
        timeout http-request    10s                  
        timeout queue           1m                   
        timeout connect         10s                  
        timeout client          1m                   
        timeout server          1m                   
        timeout http-keep-alive 10s                  
        timeout check           10s                  

#后端mysql配置,访问虚机地址+端口号可以访问后端的mysql,例如:192.168.108.133:7306可以访问140/133的mysql数据库
listen  mysql
        bind 0.0.0.0:7306
        mode tcp
        balance roundrobin
        server mysql1 192.168.108.140:3306
     server mysql2 192.168.108.133:3306


#haproxy监听端口(可去掉),访问虚机地址+端口号+/stats可以看到,例如:192.168.108.133:1080/stats
listen stats
        bind 0.0.0.0:1080
        mode http
        option httplog
        maxconn 10
        stats refresh 30s
        stats uri /stats
        stats realm XingCloud\ Haproxy
        stats auth admin:admin #用这个账号登录,可以自己设置
        stats auth Frank:Frank
        stats hide-version
        stats admin if TRUE

(三)创制日志文件/var/log/haproxy/haproxy.log

cd /var/log
mkdir haproxy
cd haproxy
touch haproxy.log
chmod a+w haproxy.log

(四)开启rsyslog的haproxy的日记记录效用

vim /etc/rsyslog.cnf --修改rsyslog.cfg文件
    $ModLoad imudp  
    $UDPServerRun 514 
    将这两行前的#去掉。
    在local7.*                                                /var/log/boot.log之后添加如下内容
    # Save haproxy log  
    local2.*                       /var/log/haproxy/haproxy.log
vim /etc/sysconfig/rsyslog --修改rsylog文件
SYSLOGD_OPTIONS=""  改为  SYSLOGD_OPTIONS="-r -m 2 -c 2" 

(五)重启日志和haproxy服务

systemctl restart rsyslog
systemctl restart haproxy

(六)haproxy相关命令

killall haproxy --停止haproxy
ps -ef |grep haproxy |grep -v grep --查看haproxy的运行状态(这里直接可以通过配置的监听页面也可以看到192.168.108.133:1080/stats)
netstat -plantu | grep 7306 --查看端口7306

(七)测试

 1.输入网站

冠亚体育手机网站 1

 

2.haproxy代理访问后端的mysql数据库,这里作者用的工具是Navicat。这里7306连连的便是192.168.108.140/133:3306数据库,这里用的客户名和密码是140/133数据库的客商名和密码,这里140和133的客户名和密码需保持一致。有疑难的同桌能够在140上新建个数据库,通过7306以此端口访谈数据库也足以瞥见刚新建的数据库。关闭之后再也打开192.168.108.133:7306时,就能访问到192.168.108.133:3306数据库,完结mysql的均衡负载。

冠亚体育手机网站 2

  甘休语:Haproxy效能依旧挺庞大的,基于Haproxy代理的web应用,还会有web/mysql的平衡负载,。这里直接境遇三个很伤脑筋的主题材料,正是测量检验连接后端mysql数据库的时候,一贯报Host
is blocked because of many connection errors; unblock with ‘mysqladmin
flush-hosts’,最终消除的是翻开140服务器上的3306端口一向有个延续占用着,并且未有连接成功,最终只得重启140的mysql数据库就好使了。那几个主题材料今后一向不艺术复现,所以这里就不解析具体的失实原因了。这里最首要就是Haproxy简单的使用,假诺有难堪或许疑问大家都足以积极提出。

  

 

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注