java - Apache httpd 日志中的大量 404 错误用于路径错误的静态文件

标签 java apache tomcat http-status-code-404

我们在 Tomcat 前面有一个 Apache,Tomcat 提供静态和动态内容。由于系统上的用户数量增加,Tomcat 变得非常慢,我们正在努力查明原因。我们有其他服务器,在 Tomcat 中打开的 session 数翻倍,没有问题。

在 Apache httpd 日志中,我看到数千个静态文件的 404 错误,其路径在我们的应用程序中不存在。文件存在,路径看起来几乎是正确的,但它包含系统中其他文件路径的重复和部分。

示例:我们的系统中有这个文件:

/assets/img/menu-toggler.png

在 httpd 日志中我可以看到:

[02/Oct/2014:12:22:16 +1000] "GET /assets/assets/css/assets/plugins/jqvmap/assets/assets/img/menu-toggler.png HTTP/1.1" 404 11947 "-" "Mozilla/4.0 (compatible;)"
[02/Oct/2014:12:22:16 +1000] "GET /assets/assets/plugins/gritter/assets/plugins/fullcalendar/assets/assets/img/menu-toggler.png HTTP/1.1" 404 11947 "-" "Mozilla/4.0 (compatible;)"

我们在系统中有文件夹assetspluginsjquery-validation等,但肯定不是那样嵌套的。

我们也有对该文件的正确 GET 请求

[02/Oct/2014:12:37:23 +1000] "GET /assets/img/menu-toggler.png HTTP/1.1" 200 948 "-" "Mozilla/4.0 (compatible;)"

我相信所有这些 404 错误都会导致 Tomcat 变慢。问题是:什么会导致这种奇怪的 GET 请求带有系统中不存在的路径?

最佳答案

两种可能性:

1 - One of your dynamic pages is generating a bad URL and serves this URL to the clients who try to get the file from this bad URL.

2 - Someone who deliberately tries to DDoS your server by flooding him with bad requests.

您的日志还可能包含有用的信息,例如 IP 地址或客户端和 HTTP 引荐来源网址,它们可以指导您寻求答案。

第一个选项更有可能是好的答案,并且可以解释为什么您的服务器性能下降以及为什么有罪的错误 URL 包含自身的重复部分(类似于您的一个脚本中退出条件错误的循环?)

关于java - Apache httpd 日志中的大量 404 错误用于路径错误的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26153772/

相关文章:

java.util.Scanner 对象在解析文本文件时抛出 NullPointerException

java - 如何通过 JSF 和 PrimeFaces 动态添加 UI 组件

apache - .htaccess 非 www 到 www 以及 http 到 https 重定向

java - Tomcat 的 HTTP 连接器的 maxPostSize 的用途是什么?

web-applications - 如何避免阻止 Tomcat Web 服务器上的 Web 请求?

java - Struts 相对路径在 7.0.78 中变平,但在 7.0.79 中没有变平,打破了 isNormalized

java - 如何在 Android 中使用 PreferenceScreen

java - 可以强制 String.valueOf() 在 Java 中返回无符号值吗?

php - 在 PHP/Apache 中提供大型 protected 文件

django - Web 框架与 Web 服务器?