Nginx+Keepalived高可用集群

一、Keepalived简介

1) Keepalived软件主要是实现网站、数据库、业务系统高可用性、自动切换的,主要是基于类似交换机制OSI七层模型:3(网络层)、4(传输层)、7层(应用层)来实现健康检查的,当监测到其中一台服务器宕机或者异常,能够切换到另外一台。

2) Keepalived软件程序主要的功能有两个:

  • 健康检测

  基于类似交换机制OSI七层模型:3(网络层:IP)、4(传输层:IP+PORT)、7层(应用层:FTP、HTTP APP)来实现健康检查;

  • VRRP漂移

  基于VRRP(虚拟路由冗余协议)路由协议来实现两台主机之间高可用,其中包括:MASTER和BACKUP,当MASTER宕机,能够自动化切换至BACKUP,从而让用户持续的访问;

 

二、Nginx+Keepalived高可用集群

背景:keepalived高可用仅仅是针对N台机器实现的高可用,与我们发布的服务无关,也就是说当你的nginx服务挂了,keepalived并不会去漂移,而是当keepalived这个软件宕机或者服务异常时,它才会去实现高可用VIP漂移;那么如何让它与nginx服务关联呢?

 

  • 使用SHELL编程脚本+keepalived实现Nginx高可用关联

一般在企业中,通常会让keepalived自动去读取shell脚本,实现故障自动切换。操作步骤如下:

编写shell脚本,在keepalived主配置中定义检测nginx模块,定义好后在VIP模块内调用函数即可。

 

Keepalived主配置如下:

复制代码
global_defs {
  notification_email {
      support@163.com
      support@163.com
 }
    notification_email_from wgkgood@163.com
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
 }
# 监控Nginx进程
vrrp_script     chk_nginx  {
    script "/data/sh/auto_check_nginx_status.sh"
    interval 2
    weight 2
}
 # VIP1
 vrrp_instance VI_1 {
     state BACKUP
     interface ens33
     virtual_router_id 151
     priority 100
     advert_int 5
     nopreempt
     authentication {
         auth_type  PASS
         auth_pass  1111
     }
     virtual_ipaddress {
         192.168.2.188
     }
    # 调用chk_nginx模块
    track_script {        
        chk_nginx
    }
 }
复制代码

 

shell脚本如下:

复制代码
#!/bin/bash
#2020年8月10日16:40:13
#from mr.pan
#auto check nginx web status 
###############################
CHECK_NGINX=$(ps -ef |grep nginx |grep -v auto_check_nginx_status |grep -aivc grep)

if [ $CHECK_NGINX -eq 0 ];then
        systemctl stop keepalived
fi
复制代码

 

上述配置完成后,启动nginx服务,重启keepalived服务。

/usr/local/nginx/sbin/nginx

systemctl restart keepalived

#可通过日志查看Keepalived详情

tail -fn 30 /var/log/messages

 

 

至此已经可以实现nginx+keepalived高可用了。

 

posted @   i潘小潘  阅读(265)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示