在负载均衡器和 Web 服务器上解密数据的目的是什么?

What is purpose of decryption of data at both the load balancer and then the web server?

我听说为了减轻 Web 服务器执行 SSL 终止的负担,它被转移到负载平衡器,然后从 LB 到 Web 服务器建立 HTTP 连接。但是,为了保证安全,一个公认的做法是将LB上的数据重新加密后再传输到web服务器。如果我们最终将加密数据发送到 Web 服务器,那么首先让 LB 终止 SSL 的目的是什么?

负载均衡器会将负载分散到多个后端服务器上,以便每个后端服务器只承担一部分负载。这种负载平衡可以通过多种方式完成,也取决于 Web 应用程序的要求:

  • 如果应用程序是完全无状态的(比如只提供静态内容),每个 TCP 连接都可以发送到任意服务器。在这种情况下,不需要 SSL 检查,因为决定不取决于流量的内容。
  • 如果应用程序是有状态的,则可能会根据会话 cookie 决定使用哪个后端,这样请求最终会与先前的会话请求在同一台服务器上结束。由于会话 cookie 是加密内容的一部分,因此需要 SSL 检查。请注意,在这种情况下,通常可以使用更简单的方法,例如根据客户端源 IP 地址做出决定,从而避免昂贵的 SSL 检查。
  • 有时,负载平衡器的作用不仅仅是平衡负载。它们可能包含安全功能,如 Web 应用程序防火墙,它们可能会清理流量或类似内容。这些功能适用于内容,因此需要 SSL 检查。