如何用nginx+keepAlive实现高可用主从配置

这篇文章主要讲解了“如何用nginx + keepAlive 实现高可用主从配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用nginx + keepAlive 实现高可用主从配置”吧!

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、网络空间、营销软件、网站建设、台江网站维护、网站推广。

一、keepAlived 简介

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件

二、如何实现故障转移 

  Keepalived高可用服务对之间的故障切换转移,是通过 VRRP 来实现的。在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,恢复到原来的备用角色
 

三、keepAlive配置

关于怎么安装这里不做叙述,首先配置 master 节点

! Configuration File for keepalived

global_defs {
   router_id ip地址              #路由器标识,最好写主机名或者IP地址,用于标识
}

vrrp_script chk_nginx {        #配置检查方式,chk_nginx为自定义名称
    script "/etc/keepalived/nginx_check.sh"   #脚本的文件地址
    interval 2
    weight 20                   #此值需要大于MASTER的priority减去BACKUP的priority
}

vrrp_instance VI_1 {
    state MASTER                #主节点为:MASTER,备节点为:BACKUP
    interface eth0              #当前虚拟机网卡
    virtual_router_id 51        # 虚拟路由编号,主从要一直
    priority 100                #优先级 数值越大,获取处理请求的优先级越高
    advert_int 1
    authentication {            #此为认证方式,MASTER和BACKUP统一
        auth_type PASS
        auth_pass 1314
    }
    track_script {              #调用上面的检查脚本
        chk_nginx
    }
    virtual_ipaddress {         #设定VIP地址
        18.50.129.74/24
    }
}

继续配置slave节点。从节点backup配置和主节点一样,只是state要改成backup,  priority 值要比master小点即可。

! Configuration File for keepalived

global_defs {
   router_id ip地址
}

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
    weight 20
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1314
    }
    track_script {
        chk_nginx
    }
    virtual_ipaddress {
        18.50.129.74/24
    }
}

最后编写脚本 nginx_check.sh

#!/bin/bash

A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];
then
    /usr/local/nginx/sbin/nginx 
    sleep 2
    if [ `ps -C nginx --no-header | wc -l` -eq 0 ];
        then
        pkill keepalived
    fi
fi

脚本说明:

  1. 脚本逻辑为检测进程如果没有nginx就尝试启动一次,然后等礴两秒,再检测,如果还没有上进程就结束keepalived进程。这样VIP就会移动到备份节点

  2. 我这里是yum安装的Nginx,所以直接使用nginx命令可以启动nginx,如果你是源码安装,或者需要配置下环境变量或者更改下启动命令和绝对路径,并测试是否能正常启动

  3. 如果觉得等待两秒的时候过长可以更改为1秒

测试:

  1. 查看两个节点的Nginx服务是否启动成功,如果keepalived启动成功会调用启动Nginx,前提需要保证Nginx能正常启动

  2. 在Master故意更改错Nginx配置文件,并停止Nginx服务过几秒查看VIP是否已经移动至BACKUP,正常是会移动到BACKUP节点

  3. 恢复Master节点,查看VIP是否回到Master,正常VIP会绑定到Master

感谢各位的阅读,以上就是“如何用nginx + keepAlive 实现高可用主从配置”的内容了,经过本文的学习后,相信大家对如何用nginx + keepAlive 实现高可用主从配置这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!

网站栏目:如何用nginx+keepAlive实现高可用主从配置
本文链接:https://www.cdcxhl.com/article22/jsddjc.html

成都网站建设公司_创新互联,为您提供品牌网站制作网站建设企业建站网页设计公司标签优化网站改版

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网页设计公司