我正在pipe理一个拥有数百个网站的专用服务器,其中有一个主要的Apache日志。
服务器在每4或5个小时有一次Apache CPU使用率的峰值,经过审查后,我在Apache access_logs行中find如下所示:
128.223.8.111 - [15/Jul/2015:02:36:09 +0100] "HEAD / HTTP/1.1" 159855ms 400 - "-" "-" 160.36.57.172 - [15/Jul/2015:02:57:21 +0100] "HEAD / HTTP/1.1" 105350ms 400 - "-" "-" 142.103.2.2 - [15/Jul/2015:03:45:29 +0100] "HEAD / HTTP/1.1" 130384ms 400 - "-" "-"
这些对应于这些在error_logs中
[Wed Jul 15 02:36:09 2015] [error] [client 128.223.8.111] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): / [Wed Jul 15 02:57:21 2015] [error] [client 160.36.57.172] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): / [Wed Jul 15 03:45:29 2015] [error] [client 142.103.2.2] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /
现在我想跟踪他们,发现他们是如何发生的。 从错误日志我明白,有人试图访问服务器,而不select主机名,但我不明白这是如何可能的。
在同一行105〜159秒是很多,但我不知道这些代表什么,因为它不访问任何PHP文件,所以它不是执行时间,所以我怎么能限制这些。
任何提示如何find原因将不胜感激。
很简单,有人访问http://ip.add.re.ss 。 这将检索一个没有主机名的页面。
您可以在Apache中创build一个默认的虚拟主机,向访问者返回404以最小化这些请求的影响。