最近我注意到一些奇怪的 Apache 访问日志(IP 地址已删除)
我有多行如下内容:
[18/Jan/2015:19:10:18 +0200] "CONNECT www.google.com:443 HTTP/1.1" 302 - "-" "-"
[18/Jan/2015:19:10:18 +0200] "GET http://www. sexlovefree .net/sexforum/forumdisplay.php?fid=11 HTTP/1.1" 302 318 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0)"
我看到所有这些请求都收到 3xx 重定向代码。这是否意味着我的服务器一直充当代理?
如果是,我可以做些什么来解决它吗?
答案1
我不清楚这些日志条目是否意味着您的服务器确实可以处理代理请求。但我对此表示怀疑。
为确保万无一失,请遵循我引用的说明Apache Wiki。并阅读在那里找到的其余文本。
我该如何阻止这些请求通过我的服务器访问国外的服务器呢?
首先,如果您不需要运行代理服务器,请通过注释掉httpd.conf 中的
LoadModule
行或设置来禁用 mod_proxyProxyRequests off
。请记住,禁用 ProxyRequests 不会阻止您使用带有ProxyPass
指令的反向代理。如果您确实需要让 Apache 充当代理服务器,请务必通过使用
<Proxy>
httpd.conf 中的部分限制访问来确保服务器的安全。我的服务器已正确配置为不使用代理,那么为什么 Apache 返回 200(成功)状态代码?
该状态代码表示 Apache 成功向客户端发送了响应,但不一定表示该响应是从外部网站检索到的。
RFC2616 第 5.1.2 节规定,Apache 必须接受请求 URI 中带有绝对 URL 的请求,即使对于非代理请求也是如此。这意味着即使关闭代理,Apache 也会接受看起来像代理请求的请求。但 Apache 不会从外部站点检索内容,而是会在您网站上的相应位置提供内容。由于主机名可能与您站点的名称不匹配,因此 Apache 会在您的默认主机上查找内容。
在上面的例子中,由于 www.yahoo.com 显然不是您系统上的有效虚拟主机,Apache 将从您的默认(虚拟)主机提供主页内容。可以将响应的大小(上例中为 1456)与默认站点上相应页面的大小进行比较,以确认响应是在本地提供的,并且没有涉及代理。