0

我需要在自由服务器中启用会话亲和性。它是默认启用还是我们有一些可以在 server.xml 文件中配置的标签或属性。

4

1 回答 1

1

如果您的应用程序使用 Java EE HTTP Session API HTTPServletRequest.getSession(),那么 Liberty 将发出 cookie,允许任何 HTTP 代理服务器在无需任何配置的情况下保持关联。

通常需要配置的唯一部分是:

  1. 选择自定义/永久 HTTP 克隆 ID,在其他环境中也称为“工作人员”或“路由”名称。这可以通过一个简单的 server.xml 标签来完成:<httpSession cloneId="foo1"/>
  2. 与故障转移相关但与亲和性无关的会话持久性需要重要的配置,例如用于共享存储的后备数据库或内存网格。

要确认会话亲和性是否有效:

  1. 启动隐身浏览器
  2. 访问您的应用程序
  3. 使用浏览器开发者工具或网络服务器日志查看传入或传出会话 cookie
  4. 注意 JSESSIONID cookie 的最后一个 ':' 分隔字段中的 cloneID

如果没有 cookie,则没有关联,因为没有建立会话。那是应用问题。

如果有 cookie 但它没有将您带回正确的服务器,这可能是因为在生成 web 服务器配置时正在使用的 cloneID 不再被后端应用程序使用。如上所述选择一个持久性克隆 ID 并重新生成/重新配置。

如果您认为有问题,您需要能够在 webservers plugin-cfg.xml 中至少显示客户端传输的会话 cookie 和服务器定义,以及自动生成的日志/状态/中显示的 cloneID您认为此请求应该具有关联性的服务器上的 plugin-cfg.xml。

于 2018-04-21T15:24:00.867 回答