Tomcat 上的所有内容都出现连接超时,日志显示都是 404。我该如何调试它?

I'm getting connection time out for everything on Tomcat, log says it's all 404. How can I debug this?

Simptom:

与 Tomcat 7 服务器的任何连接都会出现空白页面。日志记录如下,连接到 JSP 页面或我知道服务器中可用的单个 JPG 文件:

192.168.0.130 - - [23/Apr/2015:00:45:53 -0300] "GET / HTTP/1.0" 404 -
192.168.0.130 - - [23/Apr/2015:00:51:23 -0300] "GET / HTTP/1.0" 404 -
172.18.109.82 - - [23/Apr/2015:14:00:59 -0300] "GET /APPS/portal/index.jsp HTTP/1.1" 404 -
172.18.109.82 - - [23/Apr/2015:14:00:59 -0300] "GET /favicon.ico HTTP/1.1" 404 -
172.18.109.82 - - [23/Apr/2015:14:01:18 -0300] "GET /APPS/portal/index.jsp HTTP/1.1" 404 -
172.18.109.82 - - [23/Apr/2015:14:01:52 -0300] "GET /APPS/portal/index.jsp HTTP/1.1" 404 -
172.18.109.82 - - [23/Apr/2015:14:01:55 -0300] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [23/Apr/2015:14:02:30 -0300] "GET /manager/html HTTP/1.1" 404 -
172.18.109.82 - - [23/Apr/2015:14:15:44 -0300] "GET /APPS/portal/imgs/main.jpg HTTP/1.1" 404 -

这是一个 Windows 2008 R2 服务器,它在端口 8088 上运行 .NET,在端口 80 上运行 Tomcat。

我尝试做的事情:

检查Tomcat里面的conf文件是否有改动。一切似乎都很正常。 server.xml的port和baseapp都是正确的。

Windows 防火墙仍然有正确的入站规则。我什至可以 ping 通 IP,并且内网 DNS 工作正常。

在 .NET 端口上运行的网站运行良好。问题出在 Tomcat 7.

如何进一步调试这种情况?

编辑:

考虑到评论,我尝试添加其他内容:

禁用 .NET

检查 .NET 日志以检查它是否在窃取任何东西。

更改Tomcat端口

检查 Tomcat 日志以查看应用程序是否正常启动。

检查我是否有 ROOT webapp。

你可以试试

  1. 禁用 .NET,我假设是 IIS,看看它是否正在窃取 来电。
  2. 将日志记录添加到 .NET 以查看它是否正在窃取调用。
  3. 将 Tomcat 端口更改为其他未使用的端口,例如 888。
  4. 检查您的路由,看看它是否由不同的主机托管 路径。

同时拥有 IIS 和 Tomcat 的一种方法是让 IIS 使用外部请求并将这些请求转发到不同本地端口上的 Tomcat。

那些是Tomcat访问日志?如果是这样,它们意味着请求已到达 Tomcat,具有正确的 requestURI 行(您在日志中正确地看到它们,而不是垃圾),但是 Tomcat 生成状态为 404 且大小为 0 的响应(' -').

404 错误的空白响应通常表示没有“ROOT”Web 应用程序(也称为默认 Web 应用程序)运行。

当一个请求不能被路由到一个web应用(没有部署匹配的web应用,默认没有部署ROOT应用路由),Tomcat不得不在早期拒绝它.

当请求处理在早期阶段中止时(在连接器中,在到达 servlet 引擎 ErrorReportValve 之前)Tomcat 生成一个带有正确 HTTP 错误代码和原因短语的空响应 headers,但 content-length 为零。

所以,

  1. 检查您的 Tomcat 启动日志,您的 Web 应用程序已成功启动。

  2. 确保您拥有 ROOT 网络应用程序。如果您在 server.xml 中有多个 <Host> 元素——它们每个都有一个 ROOT Web 应用程序。

    有一个空的“webapps/ROOT”文件夹就可以解决这个问题。没有别的必要了。 (不需要有 WEB-INF/web.xml 文件。默认值继承自全局 conf/web.xml)。

  3. 确保 server.xml 文件中 <Engine> 元素的“defaultHost”属性与现有的 <Host> 名称匹配。