反向代理vs负载均衡器

反向代理和负载均衡器都是位于客户端和服务端之间,功能也比较相似,这也导致了很多人经常傻傻分不清它们各自的使用场景。顺便提一下,既然有反向代理,那么也就有正向代理,正向代理就是放置在客户端的代理,而反向代理是放在服务器端的代理。

我们通过一张图来看看它们之间的异同:

反向代理和负载均衡器都位于后端,因此有时候会造成困扰,到底是用反向代理还是负载均衡器,而且一般的Web中间件如Nginx,也具备了负载均衡的能力。

使用负载均衡器往往是在后端具有内容相同的服务器的时候,负载均衡器的目标就是让请求相对均匀地分发到各个服务器上,并且自动检测到出现故障的服务器,从而阻止流量转发到该服务器,保证客户端功能的正常使用。

而即使后端只有一台服务器的时候也可以使用反向代理,它的作用不再像负载均衡器那样是为了流量均分,而是作为后端服务的一个“脸面”对外提供服务,隐藏了后端服务的一些敏感信息,从而提高安全性。一些反向代理中间件可以限制某个客户端访问服务器的频率等,帮助防护DDOS攻击。反向代理的另外一个用途是进行Web加速,比如先进行gzip压缩再返回给前端,或者对后端返回的内容进行缓存,达到提高性能从而改善用户体验的目标。

以上就是反向代理和负载均衡器相似的地方和主要的区别所在,更多细节上的区别,你可以在使用中慢慢体会。欢迎扫码关注微信视频号,让我们一起成长!