nginx+keepalived实现高可用实践

 更新时间:2026年05月11日 09:05:46   作者:叮当~~~  
keepalived是一个集群管理工具,保证集群高可用,通过VRRP协议选举出主节点,保证业务连续性,文中以部署Nginx+Keepalived高可用集群为例,详细描述了部署过程

什么是keepalived?

keepalived是集群管理中保证集群高可用的一个服务,类似于heartbeat,用来防止单节点故障。

keepalived工作原理

keepalived是以VRRP协议为基础实现的。

Virtual Route Redundancy Protocol,即虚拟路由冗余协议,它主要是实现路由器高可用的容错协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master,这样的话就可以保证路由器的高可用了。。

部署nginx+keepalived

环境准备:

  • 10.3.145.110[ master ]: nginx+keepaived
  • 10.3.145.111[ backup ]: nginx+keepalived

由于keepalived中的arp数据包要广播发送,eepalived中的master和backup要在同一个网段,确保它们之间相互通信。

VIP: 10.3.145.112 ( 必须局域网内是没有用过的 IP )

1.每台机器都要部署 nginx 作为web服务
# yum install -y nginx
# systemctl start nginx

2.每台机器都要部署 keepalived 服务
# yum install -y keepalived 
# systemctl start keepalived

3.修改keepalived的配置文件
[root@master ~]# vim /etc/keepalived/keepalived.conf 
! Configuration File for keepalived
global_defs {
   router_id director1		
}

vrrp_instance VI_1 {
    state MASTER            #10.3.145.111的keepalived配置文件只需该成 BACKUP
    nopreempt				    
    interface ens33         #vip绑定机器的网卡接口
    virtual_router_id 90    #VRID 同一组集群,主备一致 
    priority 100	
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 11112
    }
    virtual_ipaddress {
		10.3.145.109        #vip地址
    }
}
4.都重启 keepalived 服务
# systemctl restart keepalived

查看vip是否生效:
# ip a

5.测试:把master的keepalived服务停止,切换到backup查看vip是否漂移

[root@master ~]# systemctl stop keepalived

[root@backup ~]# ip a    #查看到VIP,nginx高可用部署成功

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • nginx配置同一域名同一端口下部署多个vue项目

    nginx配置同一域名同一端口下部署多个vue项目

    本文主要介绍了nginx配置同一域名同一端口下部署多个vue项目,可以根据根路径不同分别代理访问不同项目,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • nginx location匹配实例详解

    nginx location匹配实例详解

    这篇文章主要介绍了nginx location匹配实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • 详解如何通过nginx进行服务的负载均衡

    详解如何通过nginx进行服务的负载均衡

    负载均衡器可以将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理,本文主要为大家详细介绍了如何通过nginx进行服务的负载均衡,需要的可以参考下
    2023-11-11
  • Nginx 禁止IP访问 只允许域名访问

    Nginx 禁止IP访问 只允许域名访问

    今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,从网络上搜到以下解决方案
    2016-09-09
  • Nginx报错“Too many open files”的问题解决

    Nginx报错“Too many open files”的问题解决

    本文主要介绍了Nginx报错“Too many open files”的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • Nginx中location匹配以及rewrite重写跳转详解

    Nginx中location匹配以及rewrite重写跳转详解

    访问重写 rewrite 是 Nginx HTTP 请求处理过程中的一个重要功能,下面这篇文章主要给大家介绍了Nginx中location匹配以及rewrite重写跳转的相关资料,需要的朋友可以参考下
    2022-03-03
  • 服务器nginx权限被拒绝解决案例

    服务器nginx权限被拒绝解决案例

    这篇文章主要为大家介绍了服务器nginx权限被拒绝解决案例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Nginx服务LNMP之WordPress部署流程步骤

    Nginx服务LNMP之WordPress部署流程步骤

    这篇文章主要为大家介绍了Nginx服务LNMP之WordPress部署流程步骤,本实验意在部署过程,使用单机版部署,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • Nginx配置文件详解以及优化建议指南

    Nginx配置文件详解以及优化建议指南

    Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势,下面这篇文章主要给大家介绍了关于Nginx配置文件详解以及优化的相关资料,需要的朋友可以参考下
    2021-09-09
  • Nginx实现静态资源的反向代理实例

    Nginx实现静态资源的反向代理实例

    这篇文章主要介绍了Nginx实现静态资源的反向代理实例,本文通过分析github发现这个应用,可以避免在https的网站中出现http链接,需要的朋友可以参考下
    2015-03-03

最新评论