初步了解代理和负载均衡

 更新时间:2021年09月03日 09:44:11   作者:拉夫德鲁  
本文主要初步带你了解代理和负载均衡的知识,文中对正向、反向代理以及反向代理与负载均衡的关系等做了详细讲解,感兴趣的朋友可以参考一下这篇文章

带着问题阅读

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形式,是将报文目的地址修改为真实服务后端地址,与反向代理有根本区别。

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

相关文章

  • Scala函数式编程专题--函数思想介绍

    Scala函数式编程专题--函数思想介绍

    这篇文章主要介绍了Scala函数式编程的的相关资料,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • 一个能生成精美代码图片的工具Carbon!让看代码成为一种享受

    一个能生成精美代码图片的工具Carbon!让看代码成为一种享受

    当我们想展示自己写的代码给别人看的时候,希望让代码保持原有的格式,并且要美观一点,有一个强大的在线工具可以帮助我们实现,而且支持多种主题,他就是Carbon,需要的朋友可以参考下
    2021-05-05
  • 怎样制作“别人家的”Chrome插件

    怎样制作“别人家的”Chrome插件

    Chrome插件有很多实用API可以让我们使用,通过Chrome插件我们还可以做很多的事情,例如翻译网页文字等。本文将教你怎样制作“别人家的”Chrome插件,感兴趣的小伙伴一起来看看吧
    2021-08-08
  • PE文件结构详解

    PE文件结构详解

    这篇文章主要介绍了PE文件结构详解,需要的朋友可以参考下
    2020-01-01
  • HTTP中ETag语法及使用实战详解

    HTTP中ETag语法及使用实战详解

    这篇文章主要为大家介绍了HTTP中ETag语法及使用实战详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 详解软件系统稳定性的三大秘密

    详解软件系统稳定性的三大秘密

    随着软件复杂性越来越高,稳定性的保障越来越难,随着服务规模越来越大,稳定性的重要性越来越高。工程师在设计和开发软件的时候,要坚持底板思维。
    2021-05-05
  • 作为程序员必须了解的缩写和专业名词

    作为程序员必须了解的缩写和专业名词

    这篇文章主要介绍了作为程序员必须了解的缩写和专业名词,文中讲解非常详细,对想学编程的朋友有所帮助,感兴趣的可以了解下
    2020-07-07
  • vscode配置备份的操作代码

    vscode配置备份的操作代码

    这篇文章主要介绍了vscode配置备份的相关知识,本文通过实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Eclipse 误删文件的恢复与代码的恢复详解

    Eclipse 误删文件的恢复与代码的恢复详解

    这篇文章主要介绍了Eclipse 误删文件的恢复,代码的恢复的相关资料,需要的朋友可以参考下
    2016-09-09
  • Hbuilder连远程接服务器上传代码的图文教程

    Hbuilder连远程接服务器上传代码的图文教程

    下面小编就为大家分享一篇Hbuilder连远程接服务器上传代码的图文教程,具有很好的参考价值,一起跟随小编过来看看吧,希望对大家有所帮助
    2017-11-11

最新评论