经过前面的配置,如果主服务器的keepalived停止服务,从服务器会自动接管VIP对外服务;一旦主服务器的keepalived恢复,会重新接管VIP。 但这并不是我们需要的,我们需要的是当NginX停止服务的时候能够自动切换。
keepalived支持配置监控脚本,我们可以通过脚本监控NginX的状态,如果状态不正常则进行一系列的操作,最终仍不能恢复NginX则杀掉keepalived,使得从服务器能够接管服务。
最简单的做法是监控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
}
更进一步,为了避免启动keepalived之前没有启动nginx , 可以在/etc/init.d/keepalived的start中首先启动nginx:
start() {
/usr/local/nginx/sbin/nginx
sleep 3
echo -n $"Starting $prog: "
daemon keepalived ${KEEPALIVED_OPTIONS}
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}
4 还可以做什么
相关推荐
Nginx+keepalived+tomcat实现性负载均衡
nginx+keepalived实现高可用负载均衡方案.pdf
Nginx++Keepalived+Tomcat负载 均衡 &动 静 分 离。配置
随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司...我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。
本文档详细介绍了如何利用keepalived实现Nginx的高可用和负载均衡的步骤,且已经在生产环境中部署验证通过
centos6.4安装nginx+keepalived实现高可用负载均衡.doc
nginx+keepalived实现高可用负载均衡方案.rar
CentOS系统安装配置Nginx+keepalived实现负载均衡
Nginx+keepalived+tomcat实现性负载均衡
Keepalived+Nginx实现高可用Web负载均衡
运用nginx的负载均衡功能实现后端web服务器之间的负载均衡,运用keepalived的功能实现nginx服务器的高可用,比较了nginx和lvs的负载均衡的优缺点。
lvs+keepalived+nginx+tomcat实现高性能负载均衡集群
lvs+Keepalived+nginx高可用负载均衡搭建部署方案
通过nginx+keepalived+tomcat实现服务器负载均衡的高可用方案,解决传统负载均衡服务器宕机后无法自行切换从而导致雪崩效应的场景
lvs keepalived+ngnix+tomcat 实现高性能负载均衡集群
Keepalived + Nginx 实现高可用 Web 负载均衡配置文件,具体详情参见博文:http://blog.csdn.net/l1028386804/article/details/72801492
nginx实现请求的负载均衡 + keepalived实现nginx的高可用的shell脚本,在liunx下跑就可以
一个稳定Web服务器架构必须实现高可用与负载均衡。这里配置Keepalived + Nginx + Tomcat + Redis的架构,其中:keepalived用于管理Virtual IP,与nginx一起搭配实现高可用性的反向代理前端;后端使用Tomcat管理web...
keepalived+Nginx+Tomcat负载均衡配置文档,生产实施原文档,欢迎大家参考。
利用LVS+Keepalived 实现高性能高可用负载均衡服务器