keepalived监控nginx进程的实现示例

 更新时间:2024年08月08日 10:38:32   作者:棉花糖老丫  
本文主要介绍了keepalived监控nginx进程的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1、说明

keepalived本身只是监控自身的进程是否挂掉,如果机器并没有挂机,只是nginx挂了,那么keepalived是不会做切换主备的,所以我们需要写个脚本来监控nginx进程是否存在。

2、上传脚本

上传脚本check_nginx.sh到/etc/keepalived目录。

#!/bin/bash
# 如果进程中没有nginx则将keepalived进程kill掉
A=`ps -C nginx --no-header |wc -l`      ## 查看是否有 nginx进程 把值赋给变量A 
if [ $A -eq 0 ];then                    ## 如果没有进程值得为 零
       service keepalived stop          ## 则结束 keepalived 进程
fi

设置check_nginx.sh脚本可执行权限:

chmod 755 check_nginx.sh  或者 chmod +x check_nginx.sh

如果执行脚本出错,需要使用dos2unix工具转化下格式:

安装dos2unix:  yum -y install dos2unix

使用:dos2unix check_nginx.sh

3、修改keepalived.conf

3.1 定义监控脚本

vrrp_script check_nginx {
    script "/etc/keepalived/check_nginx.sh"         ##监控脚本
    interval 2                                      ##时间间隔,2秒
    weight 2                                        ##权重
}

3.2 在实例中加入启用监控

vrrp_instance VI_1 {
    state BACKUP           #标示状态为MASTER 备份机为BACKUP
    interface eth0         #设置实例绑定的网卡
    virtual_router_id 51   #同一实例下virtual_router_id必须相同
    priority 100           #MASTER权重要高于BACKUP 比如BACKUP为99 
    advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
    authentication {       #设置认证
        auth_type PASS     #主从服务器验证方式
        auth_pass 8888
    }
    virtual_ipaddress {    #设置vip
        192.168.0.55       #可以多个虚拟IP,换行即可
    }
    track_script {
            check_nginx        #监控脚本
    }
}

4、keepalived.conf配置示例

! Configuration File for keepalived

#全局配置
global_defs {
   notification_email {  #指定keepalived在发生切换时需要发送email到的对象,一行一个
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc  #指定发件人
   #smtp_server 192.168.200.1                             #指定smtp服务器地址
   #smtp_connect_timeout 30                               #指定smtp连接超时时间
   router_id LVS_DEVEL                                    #运行keepalived机器的一个标识
}

vrrp_instance VI_1 { 
    state MASTER           #标示状态为MASTER 备份机为BACKUP
    interface eth0         #设置实例绑定的网卡
    virtual_router_id 51   #同一实例下virtual_router_id必须相同
    priority 100           #MASTER权重要高于BACKUP 比如BACKUP为99  
    advert_int 1           #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
    authentication {       #设置认证
        auth_type PASS     #主从服务器验证方式
        auth_pass 1111
    }
    virtual_ipaddress {    #设置vip
        192.168.0.55       #可以多个虚拟IP,换行即可
    }
}

#虚拟服务器 80端口的配置
virtual_server 192.168.0.55 80 {
    delay_loop 6              #(每隔10秒查询realserver状态)  
    lb_algo rr                #lvs调度算法rr|wrr|lc|wlc|lblc|sh|dh
    lb_kind DR                #负载均衡转发规则NAT|DR|RUN
    #nat_mask 255.255.255.0   #掩码
    persistence_timeout 50    #会话保持时间(同一IP的连接60秒内被分配到同一台realserver)  
    protocol TCP              #使用的协议

    #实际服务器的IP和端口  
    real_server 192.168.0.48 80 {
        weight 1              #默认为1,0为失效
        HTTP_GET {             #使用http get检测方式
            url {
              path /index.html
              #digest ff20ad2481f97b1754ef3e12ecd3a9cc  #http://192.168.0.48/index.html的digest值 
          status_code 200                           #http://192.168.0.48/index.html的返回状态码
            }
            connect_timeout 3     #连接超时时间
            nb_get_retry 3        #重连次数
            delay_before_retry 3  #重连间隔时间
        }
    }
}

到此这篇关于keepalived监控nginx进程的实现示例的文章就介绍到这了,更多相关keepalived监控nginx进程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx反向代理java项目方式

    nginx反向代理java项目方式

    文章简要介绍了如何使用Nginx作为反向代理来部署Java项目,核心在于配置proxy_pass指令
    2024-12-12
  • 浅谈nginx反向代理中神奇的斜线

    浅谈nginx反向代理中神奇的斜线

    这篇文章主要介绍了浅谈nginx反向代理中神奇的斜线,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Nginx服务器基本的模块配置和使用全攻略

    Nginx服务器基本的模块配置和使用全攻略

    这篇文章主要介绍了Nginx服务器基本的模块配置和使用全攻略,从Nginx的安装开始细致入微地讲解各个常用模块的部署和参数使用,需要的朋友可以参考下
    2016-04-04
  • nginx实现动静分离的方法示例

    nginx实现动静分离的方法示例

    Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-11-11
  • 部署Nginx+Apache动静分离的实例详解

    部署Nginx+Apache动静分离的实例详解

    Nginx不仅能作为Web服务器,还具有反向代理、负载均衡和缓存的功能,这篇文章主要介绍了部署Nginx+Apache动静分离的实例代码,需要的朋友可以参考下
    2019-12-12
  • nginx配置长连接、短连接、WebSocket的实现步骤

    nginx配置长连接、短连接、WebSocket的实现步骤

    在Nginx中,您可以通过配置来控制长连接、短连接以及 WebSocket 的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-02-02
  • Linux平台通过nginx和vsftpd构建图片服务器

    Linux平台通过nginx和vsftpd构建图片服务器

    这篇文章主要介绍了Linux平台通过nginx和vsftpd构建图片服务器,需要的朋友可以参考下
    2017-05-05
  • 详解Nginx服务器中的nginx.conf配置文件

    详解Nginx服务器中的nginx.conf配置文件

    这篇文章主要介绍了详解Nginx服务器中的nginx.conf配置文件,包括对HTTP服务的基本配置方法,需要的朋友可以参考下
    2015-08-08
  • nginx基于IP的多虚拟主机实现

    nginx基于IP的多虚拟主机实现

    如果同一台服务器有多个IP,可以使用基于IP的虚机主机配置,将不同的服务绑定在不同的IP上,本文主要介绍了nginx基于IP的多虚拟主机实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 深入浅析nginx部署及简单优化

    深入浅析nginx部署及简单优化

    Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。本文重点给大家介绍nginx部署及简单优化方案,感兴趣的朋友一起看看吧
    2018-08-08

最新评论