欢迎光临
我们一直在努力

web服务器采用的架构(Web服务器集群之前的架构方案及流行的方案)

目前,大多数系统都采用服务器集群技术,集群就是将相同的服务部署在多台服务器上,形成一个集群向外界提供服务,这些集群可以是Web应用服务器集群、数据库服务器集群、分布式缓存服务器集群等。

在实际应用中,Web服务器集群之前总会有一个负载均衡服务器,负载均衡设备的任务是充当Web服务器流量的入口,选择最合适的Web服务器,将客户端的请求转发给它进行处理,实现从客户端到后端服务器的透明转发。

近年来,

近年来非常流行的“云计算”和分布式架构本质上是将后端服务器作为计算资源、存储资源,由管理服务器打包成对外提供的服务,客户端不需要关心哪台机器真正在提供服务,在它看来,它似乎面对的是一个功能几乎无限的服务器, 从本质上讲,真正的服务是后端集群。

LVS和Nginx是三种使用最广泛的软件负载平衡软件。

一般来说,负载均衡的使用是随着网站规模的增加,根据不同的阶段使用不同的技术。具体的应用需求一定要具体分析,如果是中小型的Web应用,比如日PV不到1000万,用Nginx是完全可以的;如果机器很多,可以使用DNS轮询,LVS消耗的机器还是比较大的;当您有一个大型网站或重要服务和许多服务器时,您可以考虑使用 LVS。

目前网站架构普遍比较合理和流行:Web前端采用Nginx/+作为负载均衡器;后端采用主、多从、读写分离的MySQL数据库,采用LVS+架构。

LVS

LVS是Linux虚拟服务器的缩写。现在LVS已经是Linux标准内核的一部分,从.4内核开始,已经完全内置了LVS功能模块,无需对内核进行任何打补丁,就可以直接使用LVS提供的各种功能。

LVS自1998年以来已经发展成为一个相对成熟的技术项目。

LVS的架构

LVS构建的服务器集群系统由三部分组成:

(1) 最前面的负载均衡层,以负载表示

(2) 中间服务器集群层,以数组表示

(3)最底层的数据共享存储层,由

LVS 负载均衡机制

LVS 不像 HTTP 数据包的七层软加载,所以 URL 解析等七层负载可以做的工作,LVS 无法完成。

LVS 是四层负载均衡,也就是说它建立在 OSI 模型的第四层——传输层,传输层上有熟悉的 TCP/UDP,LVS 支持 TCP/UDP 负载均衡。由于 LVS 是四层负载均衡,因此与其他高级负载均衡解决方案(如 DNS 域名轮换解析、应用层负载调度和客户端调度)相比,它非常高效。

第 4 层负载均衡主要由数据包中的目标地址和端口使用。第 7 层负载均衡,也称为内容交换服务器集群技术,主要通过数据包中真正有意义的应用层内容使用。

LVS转发主要通过修改IP地址(NAT模式,分为源地址修改SNAT和目的地址修改DNAT)和修改目的MAC(DR模式)来实现。

NAT 模式:网络地址转换

NAT(ation)是一种在互联网和互联网之间映射地址的技术。

在 NAT 模式下,网络数据报由 LVS 处理。LVS需要充当RS(真实服务器)的网关。

当数据包到达 LVS 时,LVS 会执行目标地址转换 (DNAT),将目标 IP 更改为 RS 的 IP。RS 收到数据包后,就好像它是由客户端直接发送到它的一样。处理 RS 并返回响应后,源 IP 为 RSIP,目标 IP 为客户端的 IP。此时,RS 数据包通过网关 (LVS) 中继,LVS 将进行源地址转换 (SNAT) 将数据包的源地址更改为 VIP,使数据包在客户端看来就像是 LVS 直接返回给它的一样。

容灾模式:直接路由

在 DR 模式下,LVS 和 RS 集群绑定到同一个 VIP(RS 是通过绑定 VIP 来实现的),但与 NAT 的区别在于请求被 LVS 接受,提供真实服务的服务器(、RS)直接返回给用户,返回不经过 LVS。

具体来说,当请求来临时,LVS 只需要将网络帧的 MAC 地址修改为某个 RS 的 MAC,数据包就会转发给对应的 RS 进行处理,注意此时源 IP 和目的 IP 没有变化,LVS 只是做了一个花朵的转移。当 RS 收到 LVS 转发的数据包时,链路层发现 MAC 是自己的,当它转到上面的网络层时,它发现 IP 也是自己的,所以数据包被合法接受,RS 无法感知前面 LVS 的存在。当 RS 返回响应时,只需要直接返回源 IP(即用户的 IP),不再经过 LVS。

DR负载均衡模式数据分发过程不修改IP地址,

只需修改MAC地址,由于实际处理请求的真实物理IP地址与数据请求目的IP地址一致,因此无需通过负载均衡服务器进行地址转换,响应数据包可以直接返回给用户浏览器,避免负载均衡服务器网卡带宽成为瓶颈。因此,DR模式具有良好的性能,也是大型网站使用最广泛的负载均衡方式。

LVS的优势

抗负载能力强,只用于传输层的分配,不产生流量,这一特性也决定了它在软件负载均衡方面的最强性能,内存和CPU资源消耗相对较低。

可配置性相对较低,这是缺点也是优点,因为配置不多,所以不需要太多接触,大大降低了人为错误的机会。

工作稳定,因为它具有很强的抗负载能力,并且具有完整的双机热备方案,例如LVS+。没有流量,

LVS只分发请求,流量不从自身传出,保证均衡器IO的性能不会受到大流量的影响。

由于 LVS 工作在传输层,因此它可以对几乎所有应用程序进行负载平衡,包括 http、数据库、在线聊天室等。

LVS的缺点

软件本身不支持正则表达式处理,无法进行动静态分离;现在很多网站在这方面都有很强的需求,这就是Nginx和+的优势。

如果网站应用比较大,LVS/DR+实现起来比较复杂,相对来说,Nginx/+要简单得多。

恩金克斯

Nginx是一款功能强大的Web服务器软件,用于处理HTTP请求的高并发性,并作为反向代理服务器进行负载平衡。具有高性能、轻量级、内存消耗低、负载均衡能力强等优点。

尼格克斯的建筑设计

与处理并发连接的传统基于进程或线程的模型相比,为每个连接建立一个单独的进程或线程,并在网络或输入/输出操作期间阻塞。这会导致内存和 CPU 的大量消耗,因为新的单个进程或线程需要准备新的运行时环境,包括堆和堆栈内存分配以及新的执行上下文,这当然也会导致不必要的 CPU 开销。最终,由于过度的上下文切换,服务器性能会下降。

反过来,Nginx的架构被设计为模块化,事件驱动,异步,单线程和非阻塞。Nginx

广泛使用多路复用和事件通知,当Nginx启动时,它在系统的后台运行,包括一个进程,n(n>=1)进程。所有进程都是单线程的(即只有一个主线程),进程间通信主要使用共享内存。

其中,工艺流程

用于接收外界的信号,向进程发送信号,监控进程的工作状态。进程是外部请求的真正处理器,每个请求独立且平等地相互竞争来自客户端的请求。请求只能在一个进程中处理,并且一个进程只有一个主线程,因此一次只能处理一个请求。(原理与Netty非常相似)。

NGINX负载均衡

NGINX负载均衡主要支持七层网络通信模型中第七层应用层的HTTP和HTTPS。

Nginx由反向代理进行负载平衡。反向代理()方法表示代理服务器在 上接受连接请求,然后将请求转发到内部网络上的服务器,并将从服务器获得的结果返回给请求连接的客户端,此时代理服务器在外部表示为服务器。Nginx

实现负载均衡的分发策略有很多种,Nginx 目前支持以下几种方式:

轮询(默认):每个请求按时间顺序分配给不同的后端服务器,如果后端服务器出现故障,可以自动拒绝。

:指定后端服务器性能参差不齐的轮询概率,与访问率成正比。

:每个请求都根据访问IP的哈希结果进行分配,使每个访问者对后端服务器都有固定的访问权限,可以解决问题。

公平(第三方):根据后端服务器的响应时间分配请求,优先级分配,响应时间短。

(第三方):根据访问 URL 的哈希结果分发请求,使每个 URL 定向到同一个后端服务器,缓存后端服务器时效率更高。

Nginx的优势

跨平台:Nginx可以在大多数编译和移植版本上运行

配置非常简单:上手非常容易。配置风格与程序开发相同,神一样配置

无阻塞、高并发连接:官方测试可支持50000个并发连接,在实际生产环境中运行到2~30000个并发连接

事件驱动:通信机制采用轮询模式,支持更大的并发连接

/:生成一个或多个进程的进程

低内存消耗

:处理大型并发请求的内存消耗非常小。在 30,000 个并发连接的情况下,打开的 10 个 Nginx 进程消耗 150M 内存(15M*10=150M)。

内置健康检查功能:如果 Nginx 代理后端的 Web 服务器出现故障,不会影响前端访问

节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的头文件

高稳定性:用于反向代理,停机概率最小

Nginx的缺点

Nginx 仅支持 http、https 和电子邮件协议,因此范围较小,这是它的缺点。

后端服务器的健康检查,仅支持端口,不支持 URL。不支持直接保持,但可以通过它解决

支持两种代理模式,TCP(第 4 层)和 HTTP(第 7 层),还支持虚拟主机。

这些优点可以补充Nginx的一些缺点,比如维护支持、指导;它还支持通过获取指定的 URL 来检测后端服务器的状态。

与LVS类似,它本身只是一个负载平衡软件;在效率方面,它将具有比Nginx更好的负载均衡速度,在并发处理方面也将优于Nginx。

支持TCP协议负载均衡转发,可以对MySQL读取进行负载均衡,检测和负载均衡MySQL

后端节点,可以使用LVS+对MySQL主从进行负载均衡。

有许多负载平衡策略:轮循机制,-轮询,(原始地址持久性),RI(请求URL),rdp-(根据)。

赞(0) 打赏
未经允许不得转载:艾飞特资源网 » web服务器采用的架构(Web服务器集群之前的架构方案及流行的方案)
分享到

登录

找回密码

注册