Tomcat:如何阻止Tomcat为所有请求创建会话?

Dea*_*ler 3 tomcat haproxy

HAProxy正在ping tomcat并请求一个非常小的页面,导致Tomcat每2秒创建一个新会话.有没有办法以编程方式(或通过配置)告诉Tomcat不为特定页面创建新会话?

小智 12

你不需要实现任何东西,它已经存在;)!

Tomcat容器提供了Crawler Session Manager Valve(阀门就像HttpServletFilter,但是在Tomcat容器(下层)里面.你可以在这里找到更多详细信息http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html #Crawler_Session_Manager_Valve

您只需使用正确的配置将<Valve>标记添加到tomcat的server.xml.请记住为bot用户代理提供正则表达式.

例如

<Valve className="org.apache.catalina.valves.CrawlerSessionManagerValve"
crawlerUserAgents=".*googlebot.\*|.*yahoo.*" sessionInactiveInterval="600"/>
Run Code Online (Sandbox Code Playgroud)

您可以查看阀门的源代码:http://grepcode.com/file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/7.0.11/org/apache/catalina/valves/ CrawlerSessionManagerValve.java