Nginx2 - 正向代理与反向代理

在上一篇中已经介绍了Nginx的基本理论Nginx1 - 理论解析,这篇介绍一下Nginx的正向代理与反向代理。
Nginx2 - 正向代理与反向代理

一、代理

在说正向代理和反向代理之前,先说说代理。
给某个对象提供了一个代理对象,并由代理对象控制原对象的引用。简单说,我们想做什么,不直接去找,而是找个人帮我们去做,这就是日常生活中的代理。明确一个概念,所谓代理就是一个代表、一个渠道。
此时就设计到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程;如同生活中的专卖店~客人到adidas专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是adidas厂家,目标角色就是用户。

二、正向代理

正向代理位于客户端和服务端之间,为向服务端获取数据,客户端要向代理服务器发送一个请求,并制定目标服务器,代理服务器将目标服务器返回的数据转交给客户端。
简单说,比如我们要访问Google ,使用国内的ip是访问不了的,需使用vpm服务器,才能访问。
上述这样的代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。
Nginx2 - 正向代理与反向代理

三、反向代理

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
因为我们的项目部署在Nginx上(相当于),所以反向代理还包括:缓存和负载均衡。(在Nginx第三篇中介绍)
Nginx2 - 正向代理与反向代理

四、项目场景

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

五、总结

  • 正向代理,我们的角色是被代理者,正向代理,我们不对外提供服务,反而是对外消费服务,属于消费者
  • 反向代理,我们的角色是局域网web服务,反向代理,我们对外提供服务,属于服务提供者
  • 区别:正向代理代理客户端(代理中说的目标角色),反向代理代理服务器(代理中说的被代理角色)

本文图片来源于百度图片。
本文参考文章链接:https://blog.****.net/tsummerb/article/details/79248015