网站首页 > 技术教程 正文
负载均衡的基本思想是把单台服务器的访问分流到多台服务器,避免系统崩溃。以下是几种常见的解决方案。
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这套高可用环境(需要4台服务器5个IP),感兴趣的朋友可以关注下~
猜你喜欢
- 2024-10-17 12《Nginx 入门教程》Nginx负载均衡(上)
- 2024-10-17 技术干货分享:微服务浅谈服务治理的演变过程
- 2024-10-17 全面分析:Web基础架构负载均衡LVS机制的原理
- 2024-10-17 [幕客技术]负载均衡架构采用LVS中的nat和dr模式缺陷(续篇2)
- 2024-10-17 Linux服务器集群系统——LVS集群中的IP负载均衡技术
- 2024-10-17 微服务、集群、分布式的区别是什么?
- 2024-10-17 跟我学Nginx(五)——Ngin实战(nginx nginx)
- 2024-10-17 负载均衡之软硬件负载均衡的优缺点
- 2024-10-17 安排上了!用LVS+Keepalived,实现高可用负载均衡
- 2024-10-17 lvs+keepalived+nginx环境搭建补充双机热备
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)