使用Keepalived实现Nginx高可用

高可用:两台业务系统启动着相同的服务,如果有一台故障,另一台自动接管,我们将这个称之为高可用;

Keepalived提供高可用和热备的功能,用来防止单点故障的发生

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作

当不同服务器配置nginx时,主nginx挂掉后,客户端在访问地址还是原来的ip,所以需要配置虚拟ip地址

通过Linux生成uuid

uuidgen

 将生成的id配置文件uuid,到nginx配置文件中

vim /etc/sysconfig/network-scripts/ifcfg-ens33

重启服务

service network restart

离线安装Keepalived,yum安装只能使用默认目录

下载网址:https://www.keepalived.org/download.html
#1准备好Keepalived安装包,传到/opt目录下
#2解压到/usr/local/src
cd /opt 
tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src
 
#3安装依赖插件,如果已经安装可以省略
yum install -y gcc openssl-devel popt-devel
 
#3进入解压后的目录,进行配置,进行编译
cd /usr/local/src/keepalived-1.4.2
./configure --prefix=/usr/local/keepalived
./configure --prefix=/usr/local/keepalived
--prefix作用是:编译的时候用来指定程序存放路径
不指定prefix,可执行文件默知认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc。其它的资源文件放在/usr /local/share目录下,东西存放位置比较凌乱。

#4进行编译,安装
make && make install
 
#5运行前配置
cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived   /etc/init.d/
mkdir   /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf   /etc/keepalived/
cp /usr/local/src/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived   /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived   /usr/sbin/

#6修改配置文件
vim /etc/keepalived/keepalived.conf

配置文件

global_defs {
   router_id 自己起名字
}
#对应脚本文件
vrrp_script chk_nginx {
   script /etc/keepalived/nginx_check.sh
   interval 2
   weight 20
}
 
vrrp_instance VI_1 {
    state BACKUP   #本分服务器  主服务器master
    interface ens33
    virtual_router_id 51  
    priority 90   #优先级
    advert_int 1
    #nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_nginx
    }

    virtual_ipaddress {
        192.168.189.50    #虚拟地址
    }
}

sh脚本

#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ]
then
        #killall keepalived 
    echo 'nginx server is died'
    systemctl stop keepalived
    #service keepalived stop
fi

配置后启动2台服务器

双主模式

修改之前配置文件,主备配置相反,及在自己ip是主,

global_defs {
   router_id atguigu
}
 
vrrp_script chk_nginx {
   script /etc/keepalived/nginx_check.sh
   interval 2
   weight 20
}
 
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    #nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        192.168.189.50/24
    }
}
vrrp_instance VI_2 {
    state BACKUP
    interface ens33
    virtual_router_id 52
    priority 90
    advert_int 1
    #nopreempt
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        192.168.189.55/24
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远走与梦游

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值