keepalived+haproxy高可用转发端口mysql

首先解释一下这个高可用的作用,如果我们php的项目直接链接mysql的话当mysql主坏掉把从提升为主的时候我们前面所有通过ip链接数据库的中间件都要去把mysql主的ip换成我们新提升为主的msyql的ip,非常麻烦。我们做了这个虚拟vip吧主从都加进去这样我们主坏了吧从换为主的时候我们就不用在去改ip了。
首先搭建一个lnmp分布式,我这的分布为
192.168.124.177安装nginx和php,把wrodpress放到网站根目录下。
192.168.124.179和192.168.124.180安装haproxy和keepalived高可用。
192.168.124.178和192.168.124.181安装msyql做主从。
安装nginx和php的步骤和mysql的步骤就跳过了,分别安装一下就可以了
接下来开始安装haproxy192.168.124.179和192.168.124.180的两台自己操作一样。

yum -y install haproxy

进入配置文件

vim /etc/haproxy/haproxy.cfg

添加如下配置自己添加的我添加在最下面了
在这里插入图片描述
第一行的MySQL是组
第二行bind是监听本机ip我这写的0.0.0.0指得所有,后面是端口要写没有占用的,第三行值得协议,第四行指得转发到的ip这边是mysql主机的ip和端口
在这里插入图片描述
启动

systemctl  start haproxy

启动后查看
在这里插入图片描述
然后安装keepalibved 用来做haproxy的高可用主机ip为192.168.124.179和192.168.124.180

yum -y install keepalived

然后进入配置文件

vim /etc/keepalived/keepalived.conf

192.168.124.179我作为master
配置为

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
!   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.124.100
    }
}

virtual_server 192.168.124.100 8006 {
    delay_loop 6
    lb_algo rr
    protocol TCP

    real_server 192.168.124.179 8006 {
        weight 1
        notify_down "pkill keepalived"
        TCP_CHECK {
            connect_port 8006
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

vip为192.168.124.100然后我监听的为我的haproxy的端口,当我haproxy的端口挂掉过这个机子的keepalived也会停掉,达到vip飘逸。

然后192.168.124.180的配置为

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
!   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.124.100
    }
}

virtual_server 192.168.124.100 8006 {
    delay_loop 6
    lb_algo rr
    protocol TCP

    real_server 192.168.124.179 8006 {
        weight 1
        notify_down "pkill keepalived"
        TCP_CHECK {
            connect_port 8006
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

两个keepalived的配置区别只有一个是master一个是backup。权重一个是100一个是90
启动这两个keeplived

systemctl start keepalived

启动完后查看是否有vip。在这里插入图片描述
vip一般在master主机上当主挂掉后才能跑到backup上,然后测试一下关掉主看看VIP是否可以飘逸到备上去。
我们测试一下

systemctl stop haproxy

在这里插入图片描述
在这里插入图片描述
这样我们的配置就可以了接了来我们需要链接数据库的时候ip写我们vip的IP即可
我这的mysql的用户名和库名如下

在这里插入图片描述
链接数据库
在这里插入图片描述
在这里插入图片描述
链接成功

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值