最近在和大佬交流时偶然被问到何为反向代理?何为正向代理?两者区别又为何?
 
身为一名后端开发的程序猿,我相信反向代理服务器这个名词大家已如家常便饭,但突然解释其含义却如同刺猬,无处下手。再被问到何为正向代理,两者区别又如何?当场内心是挺懵的。。。
 
于是,我查询了相关的资料,做了一点总结,在这分享一二,望各位大佬斧正。
 


代理服务器

代理服务器是一种即可作为客户端、也可作为服务器的中间程序,主要用于网络请求转发。

正向代理

代理客户端,访问目标服务器
用途:
  • 突破IP访问限制:通过代理服务器,可以突破自身IP限制,例如:访问国外的网站等。
  • 缓存功能,提高访问速度:通常代理服务器都会设置一个较大的硬件缓冲区,将部分响应缓存到缓冲区中,下次客户端访问相同资源时,直接返回结果。
  • 隐藏客户端IP:客户端可以通过正向代理隐藏自身IP,免受攻击。

 

反向代理

代理目标服务器,和客户端进行交互
用途:
  • 负载均衡:可以在反向代理服务器上提供负载均衡,根据规则(轮询,ip hash, url hash, 最少连接数等)将请求分发到目标服务器的集群中。
  • 服务限流:可在反向代理服务器上设置限流规则,减轻服务端的负荷压力,提高系统的稳定性。
  • 安全控制:反向代理服务器可以作为应用层防火墙,防止一些网络攻击(例如DDos)。还可以为后端服务器进行统一的加密,例如配置HTTPS的证书和私钥。
  • 缓存功能,提高访问速度:通常代理服务器都会设置一个较大的硬件缓冲区,将部分响应缓存到缓冲区中,下次客户端访问相同资源时,直接返回结果。
  • 隐藏服务器IP:通常一个复杂的系统服务端会有多个微服务组成,但从安全角度考虑一般只会暴露一个公网IP(或者DNS),在反向代理服务器这边根据路由匹配分发到不同的微服务中(一般微服务都是使用公司的小网IP)
 

正向代理和方向代理的区别

  • 正向代理是客户端的代理,一般是客户端架设的。正向代理中,服务器不知道具体的客户端是谁。
  • 反向代理是服务器的代理,一般是服务端架设的。反向代理中,客户端不知道具体的服务端是谁。
  • 正向代理主要解决自身IP访问限制的问题。反响代理主要解决负载均衡,服务限流以及安全控制等问题。

 作者:吴家二少
本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接 

posted on 2021-03-12 17:51  吴家二少  阅读(158)  评论(0编辑  收藏  举报