如果我们有负载均衡器,为什么还需要反向代理?

如果我们有负载均衡器,为什么还需要反向代理?

我主要担心的是,既然反向代理路由是静态的,它如何取代在检查服务器健康状况后动态路由请求的负载均衡器?那么我们真的需要反向代理吗?

答案1

每个在第七层 (http) 运行的负载均衡器都是反向代理,但并非每个反向代理都是负载均衡器。您可以说负载均衡器是一种反向代理。

在第四层(例如 AWS NLB)或更低层工作的负载均衡器可能也是反向代理,但由于它们不解析 http 数据包之类的请求,因此功能性较差且功能较少。它们通常速度更快。

负载均衡器的主要工作是接收请求并将其分发到多个服务器以处理请求。它还可以执行基于路径的路由等操作,例如静态资源请求由一个服务器群或 AWS S3 填充,而应用程序页面则由另一个服务器群填充。

反向代理(如果不是负载均衡器)可以安装在单个服务器上,以便将请求发送到服务器上的另一个应用程序。例如,您可以在 Tomcat 前面安装 Nginx 或 Apache,因为它们比 Tomcat 具有更多功能,并且可以保护 Tomcat 免受某些类型的攻击。例如,如果出于某种原因您不想在 Tomcat 中这样做,则可以将 Apache 配置为缓存 Tomcat 响应。

相关内容