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

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

jianshu.com/p/fd035aa73d8a

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

 概   述 

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

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

 正向代理 

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

正向代理最大的特点是客户端非常明确要访问的服务器地址,服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。

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

客户端 → 代理服务器 → 服务器地址

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

正向代理的用途:

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

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

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

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

 反向代理 

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

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

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

反向代理的作用:

保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网

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

 正、反代理的区别 

直接上图了

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

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

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

 项目开发场景 

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

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

后   记

若有错误或者不当之处,可在本内反馈,一起学习交流!

更多热文在此:

  ●  Spring Boot 系列实战文章合集(源码已开源)

  ●  程序员写简历时必须注意的技术词汇拼写

  ●  基于Spring Security OAuth2的SSO单点登录+JWT权限控制实战

  ●  从一份配置清单详解Nginx服务器配置

  ●  如何在Windows下像Mac一样优雅的开发

  ●  Docker容器可视化监控中心搭建

  ●  利用ELK搭建Docker容器化应用日志中心

  ●  RPC框架实践之:Google gRPC

  ●  一文详解 Linux系统常用监控工具

更多 务实、能看懂、可复现的 技术文章、资源尽在 CodeSheep,欢迎扫码订阅,第一时间获取更新 ⬇️⬇️⬇️

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