正向代理( Forward Proxy ):
定义:
是指是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容, 客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。
举例:
当一群客户想要国外正品包包时,她们会选择找代购去购买,代购得到客户的请求后,会到专卖店将客户需要的包包购买回来,并根据需求把包包分发给客户。在这里专卖店不知道具体的客户是谁,他只知道代理买了多少的包包。
正向代理的用途:
提高访问速度:一般代理服务器都设置一个较大的硬盘缓冲区,会将部分请求的响应保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。隐藏客户端真实IP
反向代理( Reverse Proxy ):
定义:
是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
举例:
当某品牌的多个分店产的包包积货倾销时,他们找代理商进行销售,客户在代理商购买此包包。在这里客户不知道该品牌的包包时那个地区的专卖店的只知道是这个品牌的。在这里
反向代理的用途:
隐藏服务器真实IP负载均衡提高访问速度:反向代理服务器可以对于静态内容及短时间内有大量访问请求的动态内容提供缓存服务,提高访问速度。提供安全保障
两者的共同点:
都是做为服务器和客户端的中间层都可以加强内网的安全性,阻止 web 攻击都可以做缓存机制,提高访问速度
两者的区别:
正向代理其实是客户端的代理,反向代理则是服务器的代理。正向代理中,服务器并不知道真正的客户端到底是谁;而在反向代理中,客户端也不知道真正的服务器是谁。作用不同。正向代理主要是用来解决访问限制问题;而反向代理则是提供负载均衡、安全防护等作用。
通过概念和举例我们发现
正向代理和反向代理这个过程是相对的。这两种定义只不过是从不同的角度去看同一件事情。正向代理只是隐藏了客户端的信息,而反向代理则是隐藏了服务器的信息。
负载均衡
若用户通过向服务器发送一个请求,服务器将解决一个请求,若是一台服务器解决用户的请求过多时,则会影响服务器的处理速度。为了解决这以问题,反向代理则将用户的请求按照一定的分配方式,将请求划分给不同的服务器,来提高服务器的处理速度。
负载均衡的算法:
轮询最小链接散列
算法参考
如果觉得《Nginx之负载均衡 正向代理和反向代理》对你有帮助,请点赞、收藏,并留下你的观点哦!