反向代理

代理就是受委托去做一些事。代理服务器中,用户通过代理服务器B访问网站C,请求先到代理服务器B,B再转发请求到网站C,代理服务器B是真正访问网站C的,访问之后再把网站C的应答结果发给用户A。这样给用户A的感觉是C直接提供服务的一样,因为看不到B的整个处理过程。代理服务器是一个中间者,是充当转发请求的角色。

反向代理(reverse proxy)正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。假如用户A访问网站B,这个时候网站B充当了web服务器,也充当了反向代理服务器,它充当的代理服务器的角色是这样,假如用户A要得到网站C的内容,而用户A又不能直接访问到(例如网络原因),而服务器B可以访问到网站C,那服务器可以得到网站C的内容再存起来发给用户A,这整个过程用户A是直接和代理服务器B交互的,用户A不知道网站C的存在,这个web服务器B就是一台反向代理服务器,这个网站C就是上游服务器(upstream servers)。

反向代理的作用是,隐藏和保护原始服务器,用户根本不知道服务器C的存在,但服务器C确实提供了服务。

当反向代理服务器不止一个的时候,当用户A访问网站B时,用户又需要网站C的内容,而网站C有好多服务器,服务器就形成了集群,而网站B在请求网站C,就可以有多种方式,把请求均匀地分配给集群中的服务器,这个就是负载均衡。

Reference:

  1. nginx从入门到精通
  2. Nginx 配置详解