LVS+Keepalived+Nginx高可使用负载均衡方案

作者 : 开心源码 本文共1505个字,预计阅读时间需要4分钟 发布时间: 2022-05-11 共117人阅读

负载均衡的基本思想是把单台服务器的访问分流到多台服务器,避免系统崩溃。以下是几种常见的处理方案。

1. Nginx反向代理商

Nginx通过反向代理商技术实现分流,能按照设定的访问规则将请求转发给相应的后端服务器。

反向代理商是指当使用户访问网络上某个服务的时候,访问到的实际上是代理商服务器,代理商服务器转发使用户请求到真正解决该业务的后端服务器,最后转发结果回来给使用户。后端服务器被代理商了,对使用户不可见。

相比较的,正向代理商则是指我们通常的翻墙过程。使用户访问代理商服务器,代理商服务器转发请求给目标服务器,目标服务器返回结果给代理商服务器,再转发回给使用户。使用户被代理商了,对目标服务器不可见。

Nginx支持几种常见的负载调度算法:轮询、加权轮询、ip hash、fair、url hash。一致性哈希算法可保证同一个IP的请求落在同一台后台服务器,其余算法须处理不同服务器的Session共享问题。

Nginx支持健康检查,实现后台服务器的自动上下线,能提高系统的请求成功率。假如一个服务器请求失败,可立即切换到其余服务器,直到请求成功或者者最后一台服务器失败为止。

2. Keepalived+Nginx实现双机热备

当用一台Nginx作为反向代理商服务器时,这台服务器就变得异常重要,须避免出现单点故障。Keepalived是一个基于VRRP协议来实现的服务高可使用方案,能利使用其来避免IP单点故障。

用Keepalived能轻量级地实现Nginx的双机热备。即前台用两台服务器,当其中一台服务器发生故障时,另一台服务器接管故障机的公网虚拟IP,继续提供负载均衡服务。

3. LVS+Keepalived+Nginx添加吞吐量和稳固性

Nginx的请求转发是基于HTTP层的,所有流量都要经过Nginx。当后台服务器规模庞大时,Nginx的网络带宽就会成为一个瓶颈。

这时可引入LVS负责第一层负载,通过LVS将请求路由到后台若干台Nginx上,Nginx再转发给内部其中一台应使用服务器进行解决,最后Nginx直接将结果转发给使用户,无需再经过LVS服务器。

以上过程实际上使用到的是LVS/DR(Linux Virtual Server via Direct Routing)技术,它通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给用户。

LVS还提供的另外两种IP负载均衡技术是:VS/NAT(Virtual Server via Network Address Translation)和VS/TUN(Virtual Server via IP Tunneling)。

LVS通过MAC地址改写和网络地址转换等方式来同步转发请求,主要是基于网络层和链路层,因此效率非常高。

引入LVS后,Nginx变成了集群,Keepalived主要使用来保证LVS的高可使用,建立LVS双机热备。LVS 能对后台Nginx进行健康检查(不可以重新发送请求)。LVS也支持多种负载调度算法,如:RR, WRR, LC, WLC, LBLC, LBLCR, DH, SH。

4. DNS和CDN网络优化

DNS(Domain Name System)中一个域名可对应多个IP,因此可通过DNS轮询来实现负载均衡。同时DNS智可以解释可保证返回给使用户的IP离使用户尽可可以的近。

还能进一步按照业务系统拆分二级域名,对于每一个业务系统建立独立的负载均衡层。

CDN(Content Delivery Network)主要使用于缓存图片、多媒体文件等各种静态文件资源。将这些静态资源保存到离使用户更近的各个网络节点,能大大提高使用户访问效率和节省服务器外网出口带宽。

LVS+Keepalived+Nginx高可使用负载均衡方案

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » LVS+Keepalived+Nginx高可使用负载均衡方案

发表回复