我的服务器最近开始收到大量随机 URL 请求。
124.173.67.77 - - [23/Jul/2016:21:21:04 -0400] "GET http://www.059boss.com/index.php HTTP/1.1" 200 12040 "http://www.059boss.com/index.php" "http://www.059boss.com/index.php"
195.182.131.107 - - [23/Jul/2016:21:21:04 -0400] "GET http://ascon-profi.ru/common/proxy.php HTTP/1.1" 404 474 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208"
155.94.224.168 - - [23/Jul/2016:21:21:04 -0400] "GET http://www.daqimeng.com/user/login HTTP/1.1" 404 470 "http://www.baidu.com" "Mozilla/5.0 (compatible; Googlebot/2.1; http://www.google.com/bot.html)"
119.29.32.85 - - [23/Jul/2016:21:21:04 -0400] "GET http://www.tianx.top/ HTTP/1.0" 200 11992 "http://www.so.com" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.11) Gecko/20070312 Firefox/1.5.0.11; 360Spider"
这些都看起来像是代理请求,但有些(其中一些)返回 200 个响应,这绝对不是一件好事。我相当确定 mod_proxy 没有在任何地方启用,但有可能启用了。我该如何纠正这个问题?
答案1
这些与代理无关。提交这些GET
请求的 Web 浏览器认为您的服务器 IP 地址非常适合他们尝试访问的域。这可能出于多种原因。也许他们的 DNS 服务器坏了。
如何处理不属于你的服务器的域名
根据Apache Web 服务器文档,第一个VirtualHost
条目将用于处理未在另一个VirtualHost
条目中定义的随机主机:
由于虚拟主机
ServerName www.example.com
在配置文件中位于第一位,因此具有最高优先级,可以看作是默认或者基本的服务器。
因此,在所有其他条目之前添加一个新VirtualHost
条目,如下所示:
<VirtualHost *:80>
ServerName bad-domain
ServerAlias *
Redirect 404 /
ErrorDocument 404 "Page Not Found"
</VirtualHost>
答案2
请注意,404 响应是当 GET URL 包含子目录时发生的,而 200 响应是当 GET URL 不包含子目录时发生的。对于 200 响应,传递的网页实际上是来自您网站的文档根网页,而不是 GET URL。
答案3
实际上它们可能与代理有关...如果您已将 Apache 设置为代理(使用ProxyRequests 开启在您的配置文件中)并且您看到那些带有 200 消息的 URL,这意味着 Apache 愉快地从远程服务器下载了数据并将其发送回连接到您的计算机的客户端。
来源:在客户配置错误的 Apache 服务器上发现了此问题。