是否可以在循环负载均衡器后面停留在同一台服务器上?

时间:2012-11-22 16:54:27

标签: spring spring-security load-balancing

我有一个带有Spring Security的Web应用程序,它位于循环负载均衡器的后面,因此每当负载均衡器从服务器A跳转到服务器B时,会话就会丢失。

我们不想使用Remember-Me cookies,也许是偏执狂,但数据太明智了。

我们无法将负载均衡器配置为具有粘性会话,(这是另一个部门,并要求他们配置负载均衡器以执行此操作是我们的最后一个选项)

是否可以配置Spring的xmls,永远不会超出用户最初使用的服务器?

因此,用户在服务器A中提出的所有请求都将由服务器A提供服务?

1 个答案:

答案 0 :(得分:0)

每个服务器可以有不同的URL:

  • 服务器A:www1.myapp.com
  • 服务器B:www2.myapp.com

然后,当用户转到该应用时,他们会重定向到上述网址之一。这样,它们将被固定在该服务器上以供将来请求使用。

然而,这意味着如果一台服务器出现故障,那么用户将不会被定向到另一台服务器,因此它不会是多余的。 你可以解决这个问题,让服务器仍然运行,如果另一台服务器出现故障,则接管另一个URL。

以下是流程:

  • 用户点击www.myapp.com
  • loadbalancer将流量发送到服务器A
  • 服务器A通知URL = www.myapp.com,因此重定向到www1.myapp.com
  • 用户点击www1.myapp.com
  • 流量点击服务器A(绕过负载均衡器)

如果您不想将服务器暴露给wWW,那么您可以在LB上设置额外的池,如下所示:

  • www.myapp.com:服务器A,服务器B
  • www1.myapp.com:server A
  • www2.myapp.com:server B