LB_之HAProxy 反向代理;代理mysql;高可用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LB_之HAProxy 反向代理;代理mysql;高可用相关的知识,希望对你有一定的参考价值。
/etc/haproxy/haproxy.cfg //haproxy 的配置文件
haproxy默认是使用5000端口
[[email protected] ~]# lsof -i:80 //查看一下80端口有没有占用
HAProxy-反向代理
[[email protected] ~]# vim /etc/haproxy/haproxy.cfg
在 backend wangdada 下
添加你的real server
注意!:
frontend main *:默认是5000 ,我该成了80端口。
[[email protected] ~]# systemctl start haproxy
[[email protected] ~]# 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 在输入你设置的密码
[[email protected] ~]# systemctl restart haproxy
[[email protected] ~]# lsof -i:8000
haproxy-代理mysql
[[email protected] ~]# vim /etc/haproxy/haproxy.cfg //添加listem msql段
[[email protected] ~]# lsof -i:3306
[[email protected] ~]# systemctl stop mysqld
[[email protected] ~]# systemctl restart haproxy
[[email protected] ~]# systemctl status haproxy
[[email protected] ~]# lsof -i:3306
然后再你的 上游服务器(真实mysql)的mysql里面添加:
mysql> grant all on *.* to [email protected]'10.18.42.%' identified by '[email protected]';
mysql> flush privileges;
mysql> select * from mysql.user\G;
随便找一台机子访问10.18.42.157,实质式访问的是10.18.42.74
[[email protected] ~]# mysql -uroot -p'[email protected]' -h 10.18.42.157
haproxy的高可用
haproxy+keepalived
做两个haproxy,将做好的一个配置文件cp一份,记得backup配置文件。这样就有两个一模一样的haproxy,在这两个有haproxy的服务器上都安装上keepalived分别进行如下设置:
[[email protected] ~]# 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;高可用的主要内容,如果未能解决你的问题,请参考以下文章