参考链接:https://www.zhihu.com/question/24723688

正向代理

我们平常说的 tizi 就是正向代理,我们本地的客户端向服务器端发送请求,而如果因为某些不可抗力因素,服务器端和客户端建立的连接很不稳定,这个时候就需要代理了。

§ 正向代理和反向代理 - 图1

这个时候就需要代理工具来帮忙了,而这里说的代理就是正向代理,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器来请求。

§ 正向代理和反向代理 - 图2

反向代理

之前,我们的正向代理是隐藏客户端,使得不知道向服务器发送请求的客户端是谁;而反向代理则是隐藏服务端,使得不知道向客户端提供服务的服务器是哪个

在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂拥而入时,会造成服务器忙不过来的局面,可以使用多个服务器来共同分担成千上万的用户请求,这些服务器提供相同的服务,对于用户来说,根本感觉不到任何差别。

§ 正向代理和反向代理 - 图3

反向代理的实现

  1. 需要有一个负载均衡设备来分发用户请求,将用户请求分发到空闲的服务器上
  2. 服务器返回自己的服务到负载均衡设备
  3. 负载均衡将服务器的服务返回用户

以上的潜台词是:用户和负载均衡设备直接通信,也意味着用户做服务器域名解析时,解析得到的 IP 其实是负载均衡的 IP,而不是服务器的 IP,这样有一个好处是,当 新加入/移走 服务器时,仅仅需要修改负载均衡的服务器列表,而不会影响现有的服务。