`

keepalived+nginx打造高可用web应用的架构方案

阅读更多

看了一篇web应用的架构文章,作为web项目首先保证高可用,如果是互联网面向用户的项目呢,高可用其中一点就是要面对高并发。下面对高可用方案进行总结,本文只讨论到web service层,数据层暂不讨论。

 

单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他backup能够顶上。

 

保证系统高可用,架构设计的核心准则是:冗余。

 

单机web最初架构是DNS+web server。 一台公网ip可以对外提供服务。如果这台机器故障则web服务不可用。解决方案就是增加一台备用web server,这样单机故障之后可以启用第二台机器顶上,实现高可用目的。

 

如果把这个思路做到平滑无感知切换机器,那么一套可行的方案就是DNS+(keepalived & nginx反向代理)+web server三层架构,这个架构基本上可以解决90%以上的web项目需求。结构图如下:

keepalived+nginx架构

 

nginx使用proxy、upstream模块做为反向代理+负载均衡服务器,upstream模块自带多个负载均衡算法、自带健康检查,可以把故障web service屏蔽掉,这样保障了nginx到web service高可用。

 

那么万一,nginx故障了呢? 所以配上keepalived。 在两台nginx server上配置keepalived,设置公网ip为虚拟ip,master 机器工作,当master机器nginx故障,keepalived自动启用backup机器,用户无感知。

 

这个架构的优点是可以在nginx到web server机器通过加机器来解决高并发问题。nginx单机并发能力非常强,上万qps。缺点是有一台nginx机器基本上一直处于备用状态,机器利用率50%,为了高可用可以接受。

 

如果,并发量更大一点呢,qps超过5万呢?  能达到这个并发量,那公司的业务量很可以了,创始人应该可以财务自由了。 既然达到nginx的并发极限,当时是要增加nginx数量了。所以上面架构升级为四层,即DNS+(keepalived-lvs)+nginx+web service 来实现,这个架构可以解决99.9%的高可用、高并发web项目。 架构图如下:

 

keepalived+lvs+nginx架构

 

从图中可以看出,keepalived机器上不再部署nginx server,两台keepalived 机器,在keepalived.conf中开启负载均衡配置,一个虚拟ip对应N个nginx server,设置负载均衡算法,设置nginx server健康检查,保证N台nginx server是可用的,自动屏蔽故障nginx server。 在多台nginx server中设置虚拟ip,把vip添加到 tunl0 网卡上。 nginx server到web server的配置和上一个架构一样。

 

这样,通过横向扩展nginx server 和 web server机器的方法抗5个明星同时出轨的流量是没有问题的,99.9%的web项目都可以稳定运行了。 如果,有人问,我的并发量还要大呢?首先恭喜你的公司市值至少100亿美金了,其次,解决方案是再买几个公网ip,设置成多个vip,通过DNS轮询方式把流量分发到多个keepalived机器上,即DNS轮询+(keepalived-lvs)+nginx+web service 来实现。

 

具体配置信息参考下面几篇文章:

 lvs+keepalived群集配置

 

 LVS 和 Keepalived 的原理介绍和配置实践

 

 lvs详细介绍及lvs和keepalived的使用

 

究竟啥才是互联网架构“高可用”

 

 

 

  • 大小: 71.8 KB
  • 大小: 93.3 KB
分享到:
评论

相关推荐

    Keepalived+Nginx实现高可用Web负载均衡

    ### Keepalived+Nginx 实现高可用Web负载均衡 #### 场景需求 在现代互联网应用中,网站和应用程序需要处理大量的用户请求,并确保即使在服务器出现故障的情况下也能持续提供服务。为了满足这一需求,通常采用高可用...

    高可用之Keepalived+Nginx实现高可用Web负载均衡

    "高可用之Keepalived+Nginx实现高可用Web负载均衡" Keepsalived 和 Nginx 是实现高可用 Web 负载均衡的关键技术。Keepalived 是一种高性能的服务器高可用或热备解决方案,可以防止服务器单点故障的发生,而 Nginx ...

    分布式架构高可用架构-Keepalived+Nginx实现高可用Web负载均衡.pdf

    ### 分布式架构高可用架构-Keepalived+Nginx实现高可用Web负载均衡 #### 一、场景需求 在互联网应用中,随着用户数量的增长和技术的发展,单一服务器已难以满足日益增长的服务需求。分布式系统架构应运而生于解决...

    Keepalived+Nginx实现高可用Web负载均衡.docx

    在这个高可用架构中,我们使用 Keepalived 来实现 Nginx 的高可用,通过 Keepalived,我们可以将多个 Nginx 服务器组成一个高可用集群,使得我们的 web 服务具有高可用性。同时,我们还可以使用 Nginx 的负载均衡...

    第三十三章:Lvs+Keepalived+Nginx+Tomcat高可用集群1

    LVS+Keepalived+Nginx+Tomcat 高可用集群项目 本文主要讲述了如何构建一个高可用集群项目,使用 LVS、Keepalived、Nginx 和 Tomcat 实现高可用性和负载均衡。该项目的架构中,Keepalived 负责对 LVS 架构中的调度器...

    keepalived+nginx+tomcat+redis+mysql所需的jdk包

    MySQL和Nginx负责数据管理和流量分配,Tomcat处理Java应用的运行,Redis提供高速缓存,而Keepalived则保障了系统的高可用性。了解并熟练掌握这些组件的配置和使用,对于构建高效、可靠的Web服务环境至关重要。

    线上一键部署keepalived+nginx

    Keepalived和Nginx是两个广泛使用的开源工具,它们在提供高可用性和负载均衡解决方案上发挥着重要作用。 首先,Keepalived是一个基于VRRP(虚拟路由冗余协议)的网络服务,用于实现Linux服务器间的高可用性。它监控...

    keepalived+nginx实现双机主备

    Keepalived 是一个基于 VRRP 协议的高可用性解决方案,可以与 Nginx 服务器集成,以实现双机主备的高可用性架构。在本文中,我们将详细介绍使用 Keepalived 和 Nginx 实现双机主备的配置和原理。 一、架构概述 在...

    Nginx+KeepAlived+Tomcat负载架构

    - **整体架构**:采用Nginx作为反向代理,后端部署多个Tomcat实例,利用KeepAlived实现Nginx的主备切换,形成一套完整的高可用架构。 - **关键组件**: - **Nginx**:作为前端负载均衡器。 - **KeepAlived**:用于...

    Haproxy+Keepalived+Nginx+Lamp+Nfs实现高可用集群1

    结合Haproxy、Keepalived、Nginx、LAMP和Nfs,我们能构建一个高可用的Web服务集群,通过负载均衡和故障转移策略,保证服务的连续性,同时利用Session和Cookie管理用户状态,提供个性化体验。而Nfs的使用则确保了数据...

    Nginx+keepalived+tomcat实现性负载均衡(包含需要的包)

    在构建高性能、高可用性的Web服务时,使用...总之,Nginx+keepalived+tomcat的组合为Web服务提供了高可用性和负载均衡的能力,是企业级应用架构中的常见选择。通过合理的配置和优化,可以极大地提升系统性能和稳定性。

    keepalived+nginx+fastdfs集群安装手册

    3. **Keepalived**:Keepalived是为LVS(Linux Virtual Server)提供的一种高可用解决方案,它也适用于Nginx等其他服务。Keepalived通过健康检查和VIP(Virtual IP)漂移,确保服务的持续可用性。 - **Keepalived...

    4 lvs+keepalived+nginx+tomcat实现高性能负载均衡集群.docx

    这里提到的“4 lvs+keepalived+nginx+tomcat”架构,就是一种常用的解决方案,用于处理高流量的Web服务。下面将详细解释每个组件的作用和配置方法。 1. LVS(Linux Virtual Server): LVS是Linux内核中的一个负载...

    keepalived + nginx 主从热备.zip

    【标题】"keepalived + nginx 主从热备"是一个重要的网络服务高可用性解决方案,主要应用于Web服务器集群,确保在主服务器发生故障时,流量能够无缝切换到备用服务器,保持服务的连续性和稳定性。 【描述】这个...

    Keepalived+Nginx实现Web负载均衡

    Keepalived 是一种高性能的服务器高可用性解决方案,通过 VRRP(Virtual Router Redundancy Protocol)协议实现了路由器冗余功能。VRRP 协议的核心是将多台物理路由器虚拟化为一台逻辑路由器,其中一台作为主路由...

    keepalived + nginx组建高可用负载平衡Web server集群

    为此,我们可以采用`keepalived`与`nginx`相结合的方式,构建一个高可用的负载平衡Web服务器集群。`nginx`作为知名的反向代理和负载均衡器,能够将来自客户端的请求分发到后端的多台Web服务器,从而提高服务处理能力...

    keepalived+nginx双机热备+负载均衡 非抢占模式

    "keepalived+nginx双机热备+负载均衡 非抢占模式"是一种高级的IT解决方案,用于构建高可用、高性能的Web服务环境。通过Keepalived的VRRP和非抢占模式,保证了服务的连续性;Nginx则提供了灵活的负载均衡策略;配合...

    keepalived+haproxy+nginx-脚本

    标题中的"keepalived+haproxy+nginx-脚本"指的是一个集成的高可用性和负载均衡解决方案,其中包含了三个关键组件:Keepalived、HAProxy和Nginx。这个解决方案通常用于构建高可靠的Web服务架构,确保在主服务器故障时...

Global site tag (gtag.js) - Google Analytics