Tomcat 禁用/销毁或重用特定请求的会话创建

Tomcat disable / destroy or reuse session creation for specific requests

背景

我正在使用 Tomcat 来提供一个 .jsp 页面,负载均衡器可以调用该页面来确定托管应用程序的给定服务器是否在线并能够处理请求。

.jsp 只是向给定的应用程序发出请求并查看它是否能够响应 - 向负载平衡器发送适当的响应。

问题是对这个 .jsp 的每个请求都会在 Tomcat 中创建一个持续一段时间的会话 - 可能有许多负载平衡器请求此页面,导致累积消耗资源的会话。

问题

我可以配置 Tomcat 来执行以下任一操作吗?

我的具体要求是指 .jsp 我希望从 Tomcat 开始服务。

我正在使用 Tomcat 7.

感谢任何帮助!

将会话超时降低到 1 分钟怎么样

<session-config>
    <session-timeout>1</session-timeout>
</session-config>

这里有几个选项。

首先,您可以简单地切换到使用静态文件而不是动态 JSP 页面。如果服务器正在接受请求,这可能与 运行 一个 JSP 页面一样有效...除非您的 JSP 探测某些事情以确定应用程序的健康状况。

另一种方法是禁用 JSP 的会话生成。默认情况下,除非您另有指定,否则在您访问 JSP 时会创建会话。方法如下:

<%@page
  session="false"
  ..
%>
... rest of your page

现在您的 JSP 页面甚至不会生成会话,因此您不必处理它们或类似的东西。

最后,如果您出于某种原因需要 JSP 中的会话,您确实可以为特定类型的所有客户端使用单个会话。您可以使用 CrawlerSessionManagerValve 来做到这一点。只需确保将 crawlerUserAgents 字符串设置为匹配负载均衡器用于其探测的任何内容。