3.4 Keepalived配置Nginx自动重启,实现7*24小时不间断服务

      上一节我们配置了Keepalived,实现了高可用。这是我们master主节点nginx所在主机整个挂掉的情况。那么如果我们的master主节点的主机里面仅仅只有nginx挂掉,Keepalived还是继续会在master主节点上运行。继续访问就会出现无法访问此网站的情况。

        所以,为了实现7*24小时不间断的为用户提供服务,所以我们就要让keepalived组件定时的检测nginx。如果检测到nginx停掉了,我们就要重启nginx,使nginx重新恢复正常,如果nginx实在启动不了的话,再切换到backup从节点的nginx。

cd  /etc/keepalived

1、增加Nginx重启检测脚本

vim /etc/keepalived/check_nginx_alive_or_not.sh

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`
# 判断nginx是否宕机,如果宕机了,尝试重启
if [ $A -eq 0 ];then
    /usr/local/nginx/sbin/nginx
    # 等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机
    sleep 3
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

增加运行权限

chmod +x /etc/keepalived/check_nginx_alive_or_not.sh

2、配置keepalived监听nginx脚本

vrrp_script check_nginx_alive {
    script "/etc/keepalived/check_nginx_alive_or_not.sh"
    interval 2 # 每隔两秒运行上一行脚本
    weight 10 # 如果脚本运行成功,则升级权重+10
    # weight -10 # 如果脚本运行失败,则升级权重-10
}

3、在vrrp_instance中新增监控的脚本

track_script {
    check_nginx_alive   # 追踪 nginx 脚本
}

4、重启Keepalived使得配置文件生效

systemctl restart keepalived

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Keepalived是一种高可用性解决方案,可以在多个服务器之间实现负载均衡和故障转移。Nginx是一种高性能的Web服务器和反向代理服务器,可以帮助我们提高Web应用程序的性能和可靠性。在本文中,我们将介绍如何使用Keepalived实现Nginx的高可用性。 1. 安装Nginx 在两台服务器上安装Nginx并启动。 2. 安装Keepalived 在两台服务器上安装Keepalived,并确保它们可以相互通信。 3. 配置Nginx 在两台服务器上配置Nginx,使其能够处理来自客户端的请求。在这里,我们使用了一个简单的Nginx配置文件,其中我们将所有的请求都转发到本地的8000端口。 ``` http { upstream backend { server 127.0.0.1:8000; } server { listen 80; location / { proxy_pass http://backend; } } } ``` 4. 配置Keepalived 在两台服务器上配置Keepalived,使其可以检测Nginx的状态,并在必要时进行故障转移。 在第一台服务器上,我们将配置文件命名为/etc/keepalived/keepalived.conf,并设置它的虚拟IP地址为192.168.0.100。 ``` vrrp_script chk_nginx { script "killall -0 nginx" interval 2 } vrrp_instance VI_1 { interface eth0 state MASTER virtual_router_id 51 priority 101 virtual_ipaddress { 192.168.0.100 } track_script { chk_nginx } } ``` 在第二台服务器上,我们将配置文件命名为/etc/keepalived/keepalived.conf,并设置它的虚拟IP地址为192.168.0.100。 ``` vrrp_script chk_nginx { script "killall -0 nginx" interval 2 } vrrp_instance VI_1 { interface eth0 state BACKUP virtual_router_id 51 priority 100 virtual_ipaddress { 192.168.0.100 } track_script { chk_nginx } } ``` 在这里,我们使用了一个vrrp_script来检测Nginx的状态,并使用了一个vrrp_instance来定义虚拟IP地址和优先级。在主服务器上,我们将其状态设置为“MASTER”,优先级设置为101,而在备份服务器上,我们将其状态设置为“BACKUP”,优先级设置为100。 5. 测试 现在,我们可以测试我们的配置是否工作正常。首先,在主服务器上启动NginxKeepalived,然后在备份服务器上启动Keepalived。然后,我们可以使用curl命令测试虚拟IP地址是否能够将请求正确地转发到Nginx。在这里,我们将使用以下命令: ``` curl http://192.168.0.100 ``` 如果一切正常,我们应该能够在两台服务器上看到Nginx的访问日志,并且curl命令应该返回Nginx的欢迎页面。接下来,我们可以在主服务器上停止Nginx,并再次运行curl命令。此时,我们应该能够看到备份服务器接管了虚拟IP地址,并且curl命令仍然返回Nginx的欢迎页面。 这就是如何使用Keepalived实现Nginx的高可用性。通过这种方式,我们可以确保我们的Web应用程序具有更高的可靠性和性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lvdapiaoliang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值