正向代理和反向代理

之前经常听别人说正向代理和反向代理,但一直都不知道怎么回事,最近在鼓捣服务器端应用程序,才算是有点认识和想法。

首先说概念吧,什么是正向代理和方向代理?

正向代理

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

如下图所示:

举一个经常使用的例子,现在我们不能使用一些海外的服务,这个时候我们使用的一些工具扮演的其实就是正向代理的角色。我们虽然不能直接访问海外的服务器,但是位于海外的代理服务器可以访问,于是我们向代理服务其提出要求,代理服务器便会访问这些资源,并且把获得的结果返回给我们,这就是正向代理的一个实际应用场景。

正向代理的作用:

  1. 实现代理上网,访问无法访问的资源,隐藏用户信息;
  2. 用作缓存服务器,提高用户的访问速度;
  3. 对客户端的访问进行授权、限制以及审计等作用。(由此看来在公司中不能随便的访问其他乱七八糟的网站,殊不知自己时刻处于老板的监视之下)

反向代理

反向代理和正向代理正好相反,反向代理服务器就好像是客户端想要访问的目标服务器一样,访问者并不知道自己访问的其实是一个代理服务器,因此客户端并不需要做任何的配置就能实现(其实是服务端在做大量的工作)。

反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

如下图所示:

举一个例子,非常典型的就是 DNS 服务器,我们知道DNS服务器的查询中的递归查询,查询的顺序一般是:本地域名服务器->根域名服务器->顶级域名服务器,这其实就是负载均衡的实际应用,我们查询的只是本地 DNS 服务器,但是其实本地服务器的后端做了大量的工作,只不过对于用户来说是透明的(看不到)。

反向代理的作用:

反向代理可以做的事情有很多,主要是用来做负载均衡,这时候的反向代理服务器也就叫做负载均衡器。

简单的来说一下我所理解的负载均衡:

如下图所示:

负载均衡将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。从图里可以看到,用户访问负载均衡器,再由负载均衡器将请求转发给后端服务器。
比如我们把网页和数据库以及缓存以及域名等不同的服务分别放在不同的服务器上,就可以有效的缓解使用单一服务器的压力,并且可以提升用户的体验,毕竟响应速度提高了。

总结

正向代理和反向代理区别总结如下:

  • 正向代理是对客户端的代理,由客户端设立,客户端了解代理服务器和目标服务器,但目标服务器不了解真正的客户端是谁;使用正向代理可达到 突破访问限制、提高访问速度、对服务器隐藏客户端IP等目的;
  • 反向代理是对服务器的代理,由服务器设立,客户端不了解真正的服务器是谁,使用反向代理可达到负载均衡、保障服务端安全、对客户端隐藏服务器IP等目的。

参考网站:
【1】Dale工作学习笔记
【2】《Linux 就该这么学》


每天进步一点点!
2020/8/21   成都
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值