vlambda博客
学习文章列表

搞懂什么是正向代理和反向代理

来源丨爱讲鸡汤的油腻大叔

jianshu.com/p/fd035aa73d8a


 概   述 

关于“代理”的概念,日常学习开发过程中经常听到。比如平时工作出差时,假如想在外部公网访问公司内部局域网时,需要连公司的代理跳板机进行代理访问;再比如后端开发部署 java项目时,在公司里面也听到了运维那边各种利用 nginx来支持反向代理部署。

那什么是正向代理,什么是反向代理?


 正向代理 

正向代理是大家平时最常接触到的代理模式。

搞懂什么是正向代理和反向代理

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

正向代理的用途:

  • 访问原来无法访问的资源,如Google

  • 可以做缓存,加速访问资源

  • 对客户端访问授权,上网进行认证

  • 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息


 反向代理 

多个客户端给服务器发送的请求,Nginx服务器接收之后,按照一定的规则分发给了后端的业务处理服务器进行处理了,此时,请求的来源是客户端,但是请求具体来自哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理的角色。

搞懂什么是正向代理和反向代理

客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。反向代理,"它代理的是服务端",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

反向代理的作用:

  • 负载均衡,通过反向代理服务器来优化网站的负载


 正、反代理的区别 

直接上图了

搞懂什么是正向代理和反向代理

几种常用的 web服务器对比:

搞懂什么是正向代理和反向代理


 项目开发场景 

通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器。具体的拓扑图可能如下:


后   记

更多热文在此:

  ●  

  ●  

  ●  的SSO单点登录+JWT权限控制实战

  ●  

  ●  

  ●  

  ●  

  ●  

  ●