我正在研究在Apache Tomcat 6.0.18上运行的托管应用程序,它隐藏在Apache(httpd)之后。它们通过mod_jk连接。我们已经采用VPS,因此Apache已作为VirtualHost托管。操作系统是CentOS 32位。
问题是Tomcat非常随机地获取NULL请求(它可能有一些特定于URL的信息但不包含数据)。为了调试这个问题,我在apache上启用了dumpio,以便在日志中打印请求主体。但是我刚收到以下日志条目,
[Tue Aug 18 04:18:16 2009] [debug] mod_dumpio.c(55):mod_dumpio:dumpio_in(metadata-EOS):0 bytes
还有一点需要注意,如果我看到访问日志,我找不到任何具有相同时间戳的条目。在以下两个连续的条目中可以看到相同的结构,
86.96.227.88 - app [18 / Aug / 2009:04:17:47 -0400]“POST /app/masters/ajaxReq.iajax HTTP / 1.1”400 - “http://server/app/masters/customer.do?action=menuLoad#”“Mozilla / 4.0 (兼容; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)“1036 180
86.96.227.88 - - [18 / Aug / 2009:04:18:49 -0400]“GET / app / HTTP / 1.1”401 495“ - ”“Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.0) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618)“716 848 8
Apache(HTTPD)是否可能向Tomcat发出一些自治请求?
我需要帮助理解这个问题。
答案 0 :(得分:1)
Tomcat有一个名为RequestDumperValve的东西,它将有关每个请求的非常详细的信息转储到服务器日志。它可以用于查看大量细节。
您可以在tomcat的server.xml文件中找到此配置:
<!--
<Valve className="org.apache.catalina.valves.RequestDumperValve" />
-->
取消注释,重新启动Tomcat,然后离开。显然,它不会解决您的问题,但它可能会为您提供跟踪这些虚假请求的信息。