服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - 初步了解代理和负载均衡

初步了解代理和负载均衡

2022-09-07 17:16拉夫德鲁 编程技术

本文主要初步带你了解代理和负载均衡的知识,文中对正向、反向代理以及反向代理与负载均衡的关系等做了详细讲解,感兴趣的朋友可以参考一下这篇文章

带着问题阅读

1、什么是代理,代理有什么好处

2、正向代理和负向代理有什么区别

3、反向代理和负载均衡有什么关系

4、四层负载均衡和七层有什么区别

 

代理

代理,通俗来说好比是中介的角色,比如在生活中我们处理法律问题、房产交易都会请专业人士代为处理。从网络角度讲,就是为事务参与双方提供连接通道的第三方网络服务器。

在网络场景中,根据被代理的角色和作用划分,代理可分为正向代理和反向代理。

 

正向代理

正向代理是指对客户端提供的代理服务,在客户端无法直接访问服务端的情况下,通过配置代理服务器的方式访问服务端。

在整个过程中,客户端请求首先发送到代理服务器,代理服务器再将请求发送到服务端后将结果返回给客户端。从服务端角度来看,认为代理服务器才客户端,因此正向代理即代理客户端与服务端进行交互。比如生活中我们通过代购去购买海外商品,代购就是我们的正向代理。

初步了解代理和负载均衡

正向代理通常有以下应用场景:

  • 提供网络通道:解决客户端由于防火墙或网络限制无法访问服务端的问题,如访问google等国外网站。
  • 隐藏客户端身份:服务端只感知代理服务器,无法获取真实客户端,如黑客控制肉鸡。

 

反向代理

反向代理是指对服务端提供的代理服务,通常出于安全考虑,真正的服务端只有内网网络,无法直接提供对外服务,为此需要设置反向代理服务器,由代理服务器接收外网请求,然后再转发到内部服务器。从客户端角度看,代理服务器是提供服务的服务端,因此反向代理即代理服务端与客户端交互。比如租房遇到的二房东,我们签合同也是与二房东签订,但实际提供住房的是房主。

初步了解代理和负载均衡

反向代理通常有以下应用:

  • 提供对外服务:代理服务器暴露公网地址,接收请求并转发到内网服务器。
  • 负载均衡:根据预设策略将请求分发到多台服务器。
  • 提供安全保障:作为服务端防火墙,避免服务端遭受网络攻击。
  • 提高访问速度:基于网络位置设置就近代理服务器,提高资源获取速度,如CDN服务器。

区别

  • 正向代理代理客户端,服务端认为请求来自代理服务器;反向代理代理服务端,客户端认为提供服务的是代理服务器。
  • 正向代理通常由客户端架设,与客户端同处一个局域网;反向代理由服务端架设,与服务端同处一个局域网。
  • 正向代理通常解决访问限制的问题,反向代理通常解决对外服务和负载均衡的问题。

 

负载均衡

 

负载均衡介绍

负载均衡是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。

初步了解代理和负载均衡

负载均衡既有基于软件的实现方案,也有基于硬件的实现方案。在软件方案中,又主要有:

  • 基于DNS的负载均衡

在DNS服务器中,可以为多个不同的地址配置相同的名字,最终查询这个名字的客户机将在解析这个名字时得到其中一个地址,所以这种代理方式是通过DNS服务中的随机名字解析域名和IP来实现负载均衡。

  • 反向代理负载均衡

通常的反向代理技术,支持为同一服务配置多个后端服务器地址,以及设定相应的轮询策略。请求到达反向代理服务器后,代理通过既定的轮询策略转发请求到具体服务器,实现负载均衡,如Nginx的七层配置形式。

  • 基于NAT的负载均衡

该技术通过一个地址转换网关将每个客户端连接转换为不同的内部服务器地址,因此客户端就各自与自己转换得到的地址上的服务器进行通信,从而达到负载均衡的目的,如LVS和Nginx的四层配置形式。

 

网络模型和负载均衡

初步了解代理和负载均衡

参照OSI标准网络模型定义,负载均衡有二、三、四、七层四种负载均衡方式,对应到TCP网络模型中,即数据链路层负载均衡、网络层负载均衡、传输层负载均衡及应用层负载均衡,实际应用中通常采用四层负载均衡和七层负载均衡。

  • 四层负载均衡(IP+端口)

四层负载均衡是IP+端口的实现,以TCP协议为例,四层负载只需解析TCP报文头部,按照负载均衡算法选择相应服务后端,将报文目的地址和端口修改为真实后端服务器地址和端口,并转发请求到对应后端服务器。因此在四层负载情况下,负载均衡起到类似路由转发的效果,TCP连接的建立是客户端和服务端直接建立的。

初步了解代理和负载均衡

四层负载常用软件有:

LVS(常用,稳定性最好)

Nginx(需要额外编译stream模块)

HaProxy

  • 七层负载均衡(应用层协议如HTTP)

七层负载也称为内容交换,通常与具体应用层协议关联,根据客户端发送请求内容选择服务端进行负载转发,如Nginx基于请求URL配置转发。七层负载情况下,负载均衡与反向代理类似,客户端和服务端分别与负载均衡器建立连接,因此效率要低于四层负载。

初步了解代理和负载均衡

七层负载常用软件有:

  • HaProxy
  • Nginx
  • Apache(较少使用)

 

负载均衡和反向代理

负载均衡与反向代理是两个概念,由于其网络架构形式类似(都用于接入服务端),带来一定程度的混淆。

负载均衡的核心目标在于如何将请求均衡的分发到多个服务端;反向代理的核心目标在于隐藏服务端内部地址并为服务端提供外部访问方式。出于高可靠机制的考虑,反向代理通常也会为同一服务注册多个后端地址,因此如Nginx同时提供了反向代理和负载均衡的能力,这也是造成概念混淆的原因。

通常来讲经过反向代理,真实服务端对客户端不可见,代理即客户端认为的服务端。相较负载均衡,七层负载的请求转发与反向代理机制类似,而四层负载的NAT形式,是将报文目的地址修改为真实服务后端地址,与反向代理有根本区别。

到此这篇关于初步了解代理和负载均衡的文章就介绍到这了,更多相关代理和负载均衡内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/taleLaugh/p/15173683.html

延伸 · 阅读

精彩推荐
  • 编程技术如何构建前端领域的 “干净架构”

    如何构建前端领域的 “干净架构”

    今天我们来看一种前端架构的模式,原作者称它为“干净架构(Clean Architecture)”,文章很长,讲的也很详细,我花了很长时间去读完了它,看完很有收获...

    前端大全11722022-03-01
  • 编程技术数据分析2020年全国各省高考成绩分布情况

    数据分析2020年全国各省高考成绩分布情况

    这篇文章主要介绍了数据分析2020年全国各省高考成绩分布情况,顺便可以用这个数据看每个省市的一本线划分比率,还有其他相关的数据,需要的朋友可以...

    東木2692020-09-10
  • 编程技术2022年前端开发的优秀策略

    2022年前端开发的优秀策略

    这篇文章故意具有挑战性、两极化和发人深省的特点。它涵盖了很多你很可能不知道的新鲜内容和想法。...

    闻数起舞6052021-09-15
  • 编程技术真伪静态区别方法分析

    真伪静态区别方法分析

    有些用户觉得,伪静态和真静态实际被收录量会相差非常大,其实不然,从你个人角度,你去判断一下一个帖子到底是真静态还是伪静态?...

    编程猫3502020-07-16
  • 编程技术我们一起聊聊幂等设计

    我们一起聊聊幂等设计

    我们开发一个转账功能,假设我们调用下游接口超时了。一般情况下,超时可能是网络传输丢包的问题,也可能是请求时没送到,还有可能是请求到了,返...

    捡田螺的小男孩6012022-01-04
  • 编程技术TestNG + PowerMock 单元测试

    TestNG + PowerMock 单元测试

    单元测试(Unit Testing),是指对软件或项目中最小可测试单元进行正确性检验的测试工作。单元是人为规定最小可测试的功能模块,可以是一个模块,一个函...

    运维开发故事9732021-05-05
  • 编程技术阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布

    阿里巴巴开源 Dragonwell JDK 最新版本 8.1.1-GA 发布

    距离 Dragonwell JDK 第一个正式版本 8.0.0-GA 发布已经过去 3 个月了,项目在 Github 上的 stars 继续攀升达到了 1900。今天我们带来了最新版本 8.1.1-GA 的发布,包...

    阿里巴巴云原生5422020-09-16
  • 编程技术flash 挡住层的解决方法

    flash 挡住层的解决方法

    使用层制作的下拉菜单下正好有FLASH动画,菜单被动画遮挡.下面,就来说说它的解决方法...

    编程技术网3672020-07-16