【问题标题】:SSL and Load BalancingSSL 和负载平衡
【发布时间】:2011-04-21 18:37:06
【问题描述】:

SSL 对负载平衡的工作方式有何影响?我知道如果您选择不将会话信息存储在数据库中或进程外,则需要使用粘性会话,但这对 SSL 有何影响?

【问题讨论】:

标签: ssl load-balancing


【解决方案1】:

澄清一下,SSL/TLS 会话与 HTTP 会话无关。 (某些实现可能使用 SSL/TLS 会话 ID 作为维护 HTTP 会话的基础,但这是一个糟糕的设计,因为 SSL/TLS 可能会完全独立地更改会话,而 HTTP 正在执行的操作。

在负载平衡方面,您有两种选择:

  • 使用作为 SSL/TLS 端点的负载平衡器。在这种情况下,负载平衡将在 HTTP 级别完成:客户端连接到负载平衡器,负载平衡器解开 SSL/TLS 连接以将 HTTP 内容(然后以明文形式)传递给其工作人员。

  • 在 TCP/IP 级别使用负载平衡器,它将整个 TCP 连接直接重定向到工作程序节点。在这种情况下,每个工作节点都必须拥有证书和私钥(如果它们被一致地管理,这不一定是问题)。使用这种技术,负载均衡器根本不进行任何 HTTP 处理(因为它不在 SSL/TLS 连接中查找):一方面这减少了负载均衡器本身完成的处理,另一方面例如,它会阻止您根据 URL 结构分派到特定的工作节点。这两种方法各有优缺点。

【讨论】:

  • 好答案!您可能要提到的第二种方法的一个缺点是平衡器,因为它无法看到所有 SSL 中的 HTTP 请求,因此无法添加说明真实客户端 IP 的标头;所以对于 Web 服务器来说,它看起来好像所有请求都来自一个 Web 客户端:负载均衡器本身的 IP 地址。
  • @Brandon Craig Rhodes,您也​​许可以让负载均衡器发送数据包,就好像它来自初始客户端一样,就像反向 NAT 可以做的那样。
  • — 是的,但仅在我修改所有服务器以使用负载均衡器作为其 TCP 网关的情况下,以便所有返回到任意客户端 IP 的数据包都通过均衡器传回.据我所知,这只有在我实际在同一个 LAN 上运行机器以便它们对彼此的网络接口具有以太网级访问权限时才有可能? (因此无法使用来自云服务器提供商的任意主机?)
  • 如何让亚马逊负载均衡器充当第二个?
  • 很好的答案,但我要为网站添加 TCP/IP 级别负载平衡的另一个缺点:负载平衡器将无法使用基于 cookie 的 HTTP 会话亲和性,因为 cookie 将部分加密数据对负载均衡器不可见。这意味着不同的 Web 服务器有时会为同一个 HTTP 会话获取 HTTP 请求,这对 Web 服务器代码有重大影响。
猜你喜欢
  • 2022-01-10
  • 2011-09-20
  • 2015-08-02
  • 2023-04-04
  • 2017-04-01
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 2013-03-01
相关资源
最近更新 更多