网站首页 > 技术教程 正文
负载均衡的基本思想是把单台服务器的访问分流到多台服务器,避免系统崩溃。以下是几种常见的解决方案。
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)主要用于缓存图片、多媒体文件等各种静态文件资源。将这些静态资源保存到离用户更近的各个网络节点,可以大大提高用户访问效率和节省服务器外网出口带宽。
猜你喜欢
- 2024-10-14 使用keepalived监控tomcat 达到双机热备
- 2024-10-14 keepalived的安装(keepalived安装配置)
- 2024-10-14 15分钟学会nginx+tomcat+keepalived高可用负载均衡
- 2024-10-14 搭建环境tomcat+nginx+keepalived+zabbix
- 2024-10-14 K8s 通过 keepalive+nginx 实现 nginx-ingress-controller 高可用
- 2024-10-14 流量红利下怎么用双机搭建高可用与负载均衡——(上)
- 2024-10-14 快速入门-Keepalived+Nginx-HA高可用-不啰嗦-直接上-边实践边学
- 2024-10-14 Keepalived + Nginx 实现高可用 Web 负载均衡
- 2024-10-14 Keepalived+Nginx架构配置(keepalived nginx配置)
- 2024-10-14 Nginx双机主备(Keepalived实现)(nginx双机负载均衡配置)
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (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)
本文暂时没有评论,来添加一个吧(●'◡'●)