文档章节

keepalived监控Nginx的状态

庆沉
 庆沉
发布于 2017/05/26 22:45
字数 354
阅读 54
收藏 0

如果主服务器的keepalived停止服务,从服务器会自动接管VIP对外服务;一旦主服务器的keepalived恢复,会重新接管VIP。 但这并不是我们需要的,我们需要的是当Nginx停止服务的时候能够自动切换。

keepalived支持配置监控脚本,我们可以通过脚本监控Nginx的状态,如果状态不正常则进行一系列的操作,最终仍不能恢复Nginx则杀掉keepalived,使得从服务器能够接管服务。

如何监控NginX的状态

最简单的做法是监控Nginx进程,更靠谱的做法是检查Nginx端口,最靠谱的做法是检查多个url能否获取到页面。

如何尝试恢复服务

如果发现Nginx不正常,重启之。等待3秒再次校验,仍然失败则不再尝试。

根据上述策略很容易写出监控脚本。这里使用nmap检查nginx端口来判断nginx的状态,记得要首先安装nmap。监控脚本如下:

#!/bin/sh
# check nginx server status
NGINX=/usr/local/nginx/sbin/nginx
PORT=80

nmap localhost -p $PORT | grep "$PORT/tcp open"
#echo $?
if [ $? -ne 0 ];then
    $NGINX -s stop
    $NGINX
    sleep 3
    nmap localhost -p $PORT | grep "$PORT/tcp open"
    [ $? -ne 0 ] && /etc/init.d/keepalived stop
fi

假设上述脚本放在/opt/chk_nginx.sh,则keepalived.conf中增加如下配置:

vrrp_script chk_http_port {
    script "/opt/chk_nginx.sh"
    interval 2
    weight 2
}

track_script {
    chk_http_port
}

© 著作权归作者所有

庆沉
粉丝 36
博文 402
码字总数 137945
作品 0
深圳
运维
私信 提问
使用Keepalived+Nginx实现Nginx高可用的负载均衡

接上一文章<<CentOS 6.5高可用集群LVS+Keepalived>> 本文主要是配置Nginx、Keeplive,至于Nginx的配置就省略了 1、服务器规划 服务器IP   服务 192.168.80.77  VIP 192.168.80.188  Kee...

闪电
2016/07/24
133
0
nginx+keepalive实现高可用热备负载均衡

一、负载均衡是什么(摘自百度百科) 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和...

我心中有猛狗
2016/03/23
702
0
nginx+keepalived搭建高可用负载均衡(双主模式)

原文地址,转载请注明出处:http://blog.csdn.net/qq34021712/article/details/73441168 ©王赛超 前言 上一篇博客已经实现了nginx+keepalived主从配置,这篇博客来实现双主配置,如果Nginx...

吴伟祥
01/10
106
0
基于keepalived实现Director、ipvs、Nginx的高可用以及Nginx的双主模型

Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服...

chinahaike
2014/04/30
0
0
集群介绍&keepalived介绍&用keepalived配置高可用集群

18.1 集群介绍 • Linux集群根据功能划分为两大类:高可用和负载均衡 • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 • 实现高...

影夜Linux
2018/07/07
47
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql-connector-java升级到8.0后保存时间到数据库出现了时差

在一个新项目中用到了新版的mysql jdbc 驱动 <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>8.0.18</version> ......

ValSong
今天
5
0
Spring Boot 如何部署到 Linux 中的服务

打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档。 文档链接如下: https://docs.ossez.com/spring-boot-docs/docs/r...

honeymoose
今天
6
0
Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
9
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
5
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部