码迷,mamicode.com
首页 > 数据库 > 详细

LB_之HAProxy 反向代理;代理mysql;高可用

时间:2018-04-11 11:38:15      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:HAProxy   haproxy代理mysql   haproxy反向代理   haproxy高可用   

/etc/haproxy/haproxy.cfg                          //haproxy 的配置文件

haproxy默认是使用5000端口

[root@localhost ~]# lsof -i:80       //查看一下80端口有没有占用

HAProxy-反向代理

[root@localhost ~]# vim /etc/haproxy/haproxy.cfg

技术分享图片技术分享图片

在 backend wangdada 下

添加你的real server

注意!:

技术分享图片技术分享图片

frontend  main *:默认是5000 ,我该成了80端口。

[root@localhost ~]# systemctl start haproxy

[root@localhost ~]# lsof -i:80

在/etc/haproxy/haproxy.cfg添加此段,可以查看haproxy状态

listen status  

   bind 0.0.0.0:8000

   option httplog

   stats refresh 30s                  

   stats uri /status                  

   stats realm Haproxy_Manager_Page      

   stats auth admin:admin          

   stats hide-version              

测试:10.18.42.157:8000/status       在输入你设置的密码

[root@localhost ~]# systemctl restart haproxy

[root@localhost ~]# lsof -i:8000

haproxy-代理mysql

[root@localhost ~]# vim /etc/haproxy/haproxy.cfg           //添加listem msql段

技术分享图片技术分享图片

[root@localhost ~]# lsof -i:3306

[root@localhost ~]# systemctl stop mysqld

[root@localhost ~]# systemctl restart haproxy

[root@localhost ~]# systemctl status haproxy

[root@localhost ~]# lsof -i:3306

然后再你的 上游服务器(真实mysql)的mysql里面添加:

mysql> grant all on *.* to root@'10.18.42.%' identified by 'WJW952945084@qq.com';

mysql> flush privileges;

mysql> select * from mysql.user\G;

随便找一台机子访问10.18.42.157,实质式访问的是10.18.42.74

[root@www ~]# mysql -uroot -p'WJW952945084@qq.com' -h 10.18.42.157

haproxy的高可用

haproxy+keepalived  

做两个haproxy,将做好的一个配置文件cp一份,记得backup配置文件。这样就有两个一模一样的haproxy,在这两个有haproxy的服务器上都安装上keepalived分别进行如下设置:

[root@localhost ~]# vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

  router_id wang                      //多个keepalived这个名字之间不能一样    

}

vrrp_script chk_haproxy {                                  //设置一个vrrp_scrpt,名字随意

   script "lsof -i:80 | grep haproxy || exit 1"        //判断80端口有无haproxy,没有返回1

   interval 2                                                         //两秒判断每一次

   fail 1                                                               //允许失败1次

}

vrrp_instance web {

   state BACKUP                                             //自己根据情况选择master和backup

   interface ens33

   virtual_router_id 43

   priority 250

   nopreempt    设置为不抢占 注:这个配置只能设置在backup主机上,而且这个主机优先级要比另外一台高

   advert_int 1

   authentication {

       auth_type PASS

       auth_pass 1234444

   }

   track_script {

       chk_haproxy                               //调用上面的脚本

   }

   virtual_ipaddress {

       10.18.42.188

   }

}

相比以往增加的内容是青色背景部分,增加了一个脚本语句,和调用这个脚本的语句。如果检测到80端口没有haproxy,keepalived会让让出VIP,VIP就会飘到另一个keepalived服务器上。就实现了高可用性。

ndb引擎

技术分享图片


LB_之HAProxy 反向代理;代理mysql;高可用

标签:HAProxy   haproxy代理mysql   haproxy反向代理   haproxy高可用   

原文地址:http://blog.51cto.com/13590999/2096783

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!