理解正向代理与反向代理的区别

我们介绍了Nginx主要用来做反向代理,可能有些朋友并不很清楚什么是反向代理,本篇文章会介绍下反向代理和正向代理的不同之处:

(一)正向代理

正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。

图示如下:

举个例子:

小说里面有一些杀手组织,有钱人可以雇佣杀手帮其办事,这里面的杀手就相当于是一个正向代理。

通常在下面的情况下会用正向代理:

(1)希望隐藏客户端身份 (目标者不知道幕后操纵着是谁)

(2)客户端无法访问某些服务器,需要通过一些代理层间接访问(操纵着有钱,但是武功没有目标者高)

(二)反向代理

反向代理正好相反。对于客户端来说,反向代理就好像目标服务器。并且客户端不需要进行任何设置。客户端向反向代理发送请求,接着反向代理判断请求走向何处,并将请求转交给客户端,使得这些内容就好似他自己一样,一次客户端并不会感知到反向代理后面的服务,也因此不需要客户端做任何设置,只需要把反向代理服务器当成真正的服务器就好了。

图示如下:

举个例子:

比如去医院买药,我们只说出药的名字,然后由售货员去指定分类的地方把药拿回来再给我们,从头到尾我们不知道这个药到底放在哪个区域,而这里面售货员的角色就类似一个反向代理。

通常在下面的情况下会用反向代理:

(1)保护和隐藏原始资源服务器 (不知道药的位置)

(2)负载均衡 (买药的人太多了,多增加几个售货员来负载均衡,避免一个人忙不过来)

(三)其他

透明代理:

比较类似正向代理的功能,差别在于客户端根本不知道代理的存在,它改编你的request,并会传送真实IP(使用场景就是公司限制网络的访问)。

比如为了工作效率或者安全,A公司屏蔽了QQ软件的使用。A公司的员工接上了网络,但发现无法使用qq。这就是透明代理捣的鬼。公司在内网和外网的中间插入一个透明代理,这个代理会根据规则抓取请求内容,遇到qq的请求我就把这个请求给屏蔽掉,这样就完成了透明屏蔽。当然了,如果你明白原理,就可以自己搞个正向代理来绕过公司的屏蔽。

参考文章:

http://github.thinkingbar.com/reverseProxy/

http://blog.51cto.com/z00w00/1031287

原文发布于微信公众号 - 我是攻城师(woshigcs)

原文发表时间:2017-12-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云加头条

智能云上手指南:如何接入腾讯云开放的计算机视觉能力?

本文将为广大云开发者介绍如何接入腾讯开放的计算机视觉能力,即万象优图。

6033
来自专栏增长技术

ffmpeg Documentation

| | | | | input | demuxer | encoded data | ...

1111
来自专栏hotqin888的专栏

Merit技术人员价值管理系统——完善编辑结构

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

643
来自专栏美团技术团队

基于rsync的文件增量同步方案

背景 犀牛云盘是美团点评内部一个基于美团云的文件协作平台,核心是文件的结构化云存储以及上传和下载的体验优化。文件同步是云盘功能的重要部分(包括文件内容的同步和文...

6684
来自专栏企鹅号快讯

理解正向代理与反向代理的区别

我们介绍了Nginx主要用来做反向代理,可能有些朋友并不很清楚什么是反向代理,本篇文章会介绍下反向代理和正向代理的不同之处: (一)正向代理 正向代理是一个位于...

3575
来自专栏FreeBuf

藏匿在邮件里的“坏小子”

不知从什么时候开始,我的垃圾邮件开始暴增,而且主题千奇百怪,有“再也不用去澳门赌博”、“免保人、免抵押”…等推广主题;有“南北方压岁钱差距有多大?”、“爱过才知...

1488
来自专栏机器之心

业界 | 微信团队开源围棋AI技术PhoenixGo,复现AlphaGo Zero论文

2504
来自专栏java一日一条

多种负载均衡算法及其 Java 代码实现

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展 网络设备和 服务器的带宽、增加 吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

1651
来自专栏派森公园

深入理解Linux LA

经常和Linux打交道的童鞋都知道,load averages是衡量机器负载的关键指标,但是这个指标是怎样定义出来的呢?

1474
来自专栏ATYUN订阅号

腾讯开源围棋AI程序PhoenixGo,复现AlphaGo Zero

PhoenixGo是一个围棋AI程序,它执行AlphaGo Zero论文“掌握无人知识的Go游戏”。它也被称为FoxGo中的“BensonDarr”,CGOS中...

1682

扫码关注云+社区