正向代理、反向代理

代理作为客户端和服务器的中间层,按照不同的维度可以分为不同的类型。

一种常见的划分方式是将代理分为正向代理(forward proxy)与反向代理(reverse proxy)。

根据实现代理的方式可以分为 HTTP 隧道代理、MITM 代理、透明代理。

根据代理协议的类型,又可以分为 HTTP 代理、HTTPS 代理、SOCKS 代理、TCP 代理等。

1. 正向代理

当我们谈论代理服务器时,通常指的就是正向代理。正向代理会向一个客户端或一组客户端提供代理服务。通常,这些客户端属于同一个内部网络。当客户端尝试访问外部服务器时,请求必须首先通过正向代理。

可是我们为什么需要这多余的中间层呢?因为正向代理能够监控每一个请求与回复,鉴权、控制访问权限并隐藏客户端实际地址。隐藏了客户端的真实地址之后,正向代理可以绕过一些机构的网络限制,这样一些互联网用户就实现了匿名性。

forwared

2. 反向代理

与正向代理不同的是,反向代理位于服务器的前方,客户端不能直接与服务器进行通信,需要通过反向代理。我们比较熟悉的 Nginx 一般就是用于实现反向代理的。

1.客户端(User):一个想要访问网站的用户。
2.反向代理服务器:一个为多个后端服务器进行统一出入访问和请求分发的服务器。
3.后端服务器:实际处理请求并返回数据的服务器。
在这个场景中,用户通过互联网访问一个网站的URL,如用户在浏览器输入 http://www.example.com
4.用户的请求首先到达反向代理服务器。这个服务器对外是一个单一的入口点。
5.反向代理服务器根据配置的规则(例如请求的URL或内容类型)以及负载均衡策略将请求转发到一个或多个后端服务器 上。
6.一个或多个后端服务器处理请求,并生成响应。
7.响应回到反向代理服务器,再由反向代理服务器分发响应回到原始请求的客户端
在这里插入图片描述

可以认为:正向代理不知道客户端是谁,反向代理不知道服务器端是谁

反向代理可以带来下面几个好处。

  • 负载均衡

对于大型分布式系统来说,反向代理可以提供一种负载均衡解决方案,在不同服务器之间平均分配传入流量,防止单个服务器过载。如果某台服务器完全无法运转,可以将流量转发到其他服务器。

  • 防范攻击

配备反向代理后,服务器无需暴露真实的 IP 地址,这就让攻击者难以进行针对性攻击(例如 DDoS 攻击),同时,反向代理通常还拥有更高的安全性和更多抵御网络攻击的资源。

  • 缓存

代理服务器可以缓存(或临时保存)服务器的响应数据(即使服务器在千里之外),大大加快请求的速度。

  • SSL 加密解密

反向代理可以对客户端发出的 HTTPS 请求进行解密,对服务器发出的 HTTP 请求进行加密,从而节约目标服务器资源。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值