《系统设计》课程学习笔记—代理

127 阅读2分钟

代理服务器是位于客户端和后端服务器之间的中间硬件/软件。它接收来自客户端的请求,并将它们转发到源服务器。通常,代理用于过滤请求、日志记录请求或转换请求(通过添加/删除报文头、加密/解密或压缩)。

类型

有两种类型的代理:

正向代理

正向代理(Forward Proxy),通常称为代理、代理服务器或 Web 代理,是位于一组客户端机器前面的服务器。当这些计算机向互联网上的站点和服务发出请求时,代理服务器会拦截这些请求,然后代表这些客户端与 Web 服务器通信,就像中间人一样。

forward-proxy.webp

优点

以下是正向代理的一些优点:

  • 阻止访问某些内容
  • 允许访问受地理限制的内容
  • 提供匿名
  • 避免其他浏览限制

虽然代理提供了匿名的好处,但它们仍然可以跟踪我们的个人信息。代理服务器的设置和维护成本高昂,需要进行配置。

反向代理

反向代理是位于一个或多个 Web 服务器前面的服务器,用于拦截来自客户端的请求。当客户端向网站的源服务器发送请求时,反向代理服务器会拦截这些请求。

正向代理和反向代理之间的区别很微妙,也很重要。一种简单的总结方法是,前向代理位于客户端前面,并确保没有源服务器直接与该特定客户端通信。另一方面,反向代理位于源服务器前面,并确保任何客户端都不会直接与该源服务器通信。

reverse-proxy.webp

引入反向代理会增加复杂性。单个反向代理会出现单点故障,配置多个反向代理(即故障转移)会进一步增加复杂性。

优点

以下是使用反向代理的一些优点:

  • 提高安全性
  • 缓存
  • SSL加密
  • 负载均衡
  • 可扩展性和灵活性

负载均衡器与反向代理

等等,反向代理不是类似于负载均衡器吗?不,当我们有多台服务器时,负载均衡器很有用。通常,负载均衡器将流量路由到一组服务于相同功能的服务器,而反向代理即使仅对一个 Web 服务器或应用程序服务器也是有用的。反向代理也可以充当负载均衡器,但负载均衡器不能充当反向代理。

例子

以下是一些常用的代理技术: