0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解析keepalived+nginx实现高可用方案技术

454398 来源:itpub技术栈 作者:itpub技术栈 2020-09-30 15:52 次阅读

之前讲了Nginx 如何实现负载均衡以及如何实现动静分离,实现系统的分布式部署,提高系统的并发性能。但是,有个问题:如果Nginx 系统挂了,整个系统就都不可用了。Nginx 处于整个系统非常重要的位置,Nginx的高可用影响到整个系统的稳定性。如果nginx服务器宕机,后端web服务将无法提供服务,影响严重。所以如何保证Nginx 的稳定和高可用非常重要,接下来就来介绍Nginx + keepalived 实现系统负载均衡高可用的方案。

一、什么是负载均衡高可用

Nginx作为负载均衡器,所有请求必须经过Nginx 服务器,可见Nginx处于非常重点的位置,如果Nginx服务器宕机后端web服务将无法提供服务,影响严重。

为了避免因为负载均衡服务器的宕机从而影响整个系统的问题,需要建立一个备份机。主服务器和备份服务器上都运行监控程序,通过传送心跳信息来监控对方的运行状况。当备份服务器在一定的时间内没有收到主服务器的心跳信息时,它就自动接管主服务器的服务IP,继续提供负载均衡服务;当备份服务器又从主服务器收到心跳信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。

二、Nginx高可用方案

目前,比较流行的实现Nginx高可用方案就是:keepalived+nginx实现主备方案。

1、什么是keepalived

keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。

Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

2、keepalived工作原理

keepalived是以VRRP协议为实现基础的,VRRP全称 Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

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

keepalived主要有三个模块,分别是core、check和VRRP。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。VRRP模块是来实现VRRP协议的。

3、keepalived+nginx实现主备过程

keepalived + nginx 实现主备的过程,如下图所示:

从上图可以看到,主Nginx健康时,系统所有的请求通过主Nginx 转发到Tomcat服务器集群。当主Nginx 宕机后,会立马切换到备Nginx ,由备Nginx 提供转发服务。这样就保证系统的正常运行。

三、环境准备

1、两天Nginx服务器和两台web服务器

两台nginx,一主一备:192.168.101.3和192.168.101.4

两台tomcat服务器:192.168.101.5、192.168.101.6

2、安装keepalived

分别在主备nginx上安装keepalived,这里就讲解keepalived的安装了。

3、配置虚拟IP(vip:192.168.101.100)

四、配置Nginx高可用

1、配置主nginx

修改主nginx下/etc/keepalived/keepalived.conf文件,配置主Nginx。

2、配置备nginx

修改备nginx下/etc/keepalived/keepalived.conf文件,配置备Nginx

配置备nginx时需要注意:需要修改state为BACKUP , priority比MASTER低,virtual_router_id和master的值

3、测试

1、主备nginx都启动keepalived及nginx。

service keepalived start./nginx

2、启动之后,主Nginx正常工作,分别查看主nginx和 备nginx的eth0设置,vip(192.168.101.100)绑定在主nginx的eth0上。

打开浏览器,访问http://192.168.101.100,可以访问,主Nginx 服务器正常,系统可用。

3、将主nginx的keepalived停止或将主nginx关机(相当于模拟宕机),再次查看主nginx和 备nginx的eth0设置,vip(192.168.101.100)已经漂移到备nginx 上。

再次访问http://192.168.101.100,发现系统依然可以访问,说明主Nginx 宕机之后,自动切换到备用Nginx。

最后

以上,keepalived+nginx 系统高可用的解决方案介绍完了,看上去复杂,其实配置还是比较简单的。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8088

    浏览量

    82433
  • 路由器
    +关注

    关注

    22

    文章

    3482

    浏览量

    111315
  • nginx
    +关注

    关注

    0

    文章

    135

    浏览量

    11982
  • 负载均衡器
    +关注

    关注

    0

    文章

    18

    浏览量

    2554
收藏 人收藏

    评论

    相关推荐

    基于KeepAlive的可用配置

    KeepAlived集群可用搭建
    发表于 06-11 16:36

    使用nginx实现tomcat负载均衡

    Nginx+tomcat+memcached实现负载均衡及session(交叉存储)
    发表于 08-28 08:52

    nginx实现的负载均衡

    nginx实现负载均衡
    发表于 05-04 13:42

    16nginx+keepalived +zuul如何实现可用及负载均衡

    学习笔记微服务-16 nginx+keepalived +zuul 实现可用及负载均衡
    发表于 05-22 10:16

    Keepalived+Haproxy如何实现可用负载综合实验

    Keepalived+Haproxy实现可用负载综合实验
    发表于 06-02 16:53

    双机热备与负载均衡的设计与实现

    针对OpenFlow SDN系统中的策略管理模块提出了一种新型的双机热备和负载均衡方案,采用了服务器集群的方式,通过Keepalived和Heartbeat实现了双机热备模块,通过Nginx
    发表于 12-24 17:57 10次下载

    Nginx和Tomcat负载均衡实现session共享

    Nginx和Tomcat负载均衡实现session共享
    发表于 09-05 10:40 9次下载
    <b class='flag-5'>Nginx</b>和Tomcat负载均衡<b class='flag-5'>实现</b>session共享

    Nginx 常见应用技术指南

    Nginx 常见应用技术指南
    发表于 09-07 14:42 6次下载
    <b class='flag-5'>Nginx</b> 常见应用<b class='flag-5'>技术</b>指南

    linux高级技巧:服务器集群之keepalived

    linux高级技巧:集群之keepalived
    的头像 发表于 03-20 13:36 4747次阅读
    linux高级技巧:服务器集群之<b class='flag-5'>keepalived</b>

    keepalived及LVS概述,KeepAlived工作原理

    Checkers :此功能模块主要负责真实服务器的健康检查( HealthChecking ),是Keepalived最主要的功能之一,因为HealthChecking是负载均衡功能稳定运行的基础, LVS集群节点的故障隔离和重新加入均依赖于HealthChecking的结果。
    的头像 发表于 06-25 14:08 5.4w次阅读
    <b class='flag-5'>keepalived</b>及LVS概述,<b class='flag-5'>KeepAlived</b>工作原理

    干货:VMware虚拟机和 keepalived的运维手册

    干货:VMware虚拟机和 keepalived的运维手册
    的头像 发表于 06-28 10:00 2407次阅读
    干货:VMware虚拟机和 <b class='flag-5'>keepalived</b>的运维手册

    Nginx可用方案

    可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如果一个系统能够一直提供服务,那么这个可用性则是百分之百,但是天有不测风云。所以我们只能尽可能的去减少服务的故障。
    的头像 发表于 02-01 09:19 347次阅读

    Keepalived工作原理简介

    Keepalived实现可用架构的不二之选,如果你想通过开源软件来搭建一套双机热备架构系统,Keepalived绝对是最优选择。无论是在易用性还是稳定性上都是非常优秀的。
    的头像 发表于 02-25 17:00 708次阅读

    搭建Keepalived+Lvs+Nginx可用集群负载均衡

    Server)实现可用负载均衡 附:LVS的负载均衡算法 八、搭建Keepalived+Lvs+Nginx可用集群负载均衡 一、Nginx
    的头像 发表于 06-25 15:39 1791次阅读
    搭建<b class='flag-5'>Keepalived+Lvs+Nginx</b>高<b class='flag-5'>可用</b>集群负载均衡

    Nginx 如何实现高性能低消耗

    Nginx具有丰富的模块库、灵活的配置、较低资源消耗等优点。下面,我们一起深入看一下Nginx的工作机制 1. Nginx 如何实现高性能低消耗的呢? 我们从以下几个方面说明以下:
    的头像 发表于 11-11 11:31 331次阅读
    <b class='flag-5'>Nginx</b> 如何<b class='flag-5'>实现</b>高性能低消耗