我需要在自由服务器中启用会话亲和性。它是默认启用还是我们有一些可以在 server.xml 文件中配置的标签或属性。
问问题
1827 次
1 回答
1
如果您的应用程序使用 Java EE HTTP Session API HTTPServletRequest.getSession()
,那么 Liberty 将发出 cookie,允许任何 HTTP 代理服务器在无需任何配置的情况下保持关联。
通常需要配置的唯一部分是:
- 选择自定义/永久 HTTP 克隆 ID,在其他环境中也称为“工作人员”或“路由”名称。这可以通过一个简单的 server.xml 标签来完成:
<httpSession cloneId="foo1"/>
- 与故障转移相关但与亲和性无关的会话持久性需要重要的配置,例如用于共享存储的后备数据库或内存网格。
要确认会话亲和性是否有效:
- 启动隐身浏览器
- 访问您的应用程序
- 使用浏览器开发者工具或网络服务器日志查看传入或传出会话 cookie
- 注意 JSESSIONID cookie 的最后一个 ':' 分隔字段中的 cloneID
如果没有 cookie,则没有关联,因为没有建立会话。那是应用问题。
如果有 cookie 但它没有将您带回正确的服务器,这可能是因为在生成 web 服务器配置时正在使用的 cloneID 不再被后端应用程序使用。如上所述选择一个持久性克隆 ID 并重新生成/重新配置。
如果您认为有问题,您需要能够在 webservers plugin-cfg.xml 中至少显示客户端传输的会话 cookie 和服务器定义,以及自动生成的日志/状态/中显示的 cloneID您认为此请求应该具有关联性的服务器上的 plugin-cfg.xml。
于 2018-04-21T15:24:00.867 回答