最近,我注意到我的网站运行速度越来越慢。我在我的服务器上发现了8GB Apache日志(我在Debian 6服务器上运行Play!Framework Web应用程序)并且带宽完全超载。对于每天只有少量观点的小型个人网站而言,这完全是疯了。
在调查并收集了一些信息之后,我发现了我的错误:在我的Apache配置中,我没有注释“ProxyRequests On”这一行,所以我的服务器被自由地用作世界上每个人的免费代理。多么可惜。
至少在那个时候,我调整了我的防火墙以限制并发连接,并为Apache2安装了mod_qos。
但是,现在不是将请求重定向到目的地,而是像一个好的免费代理一样,所有传入的请求都被重定向到我的Web应用程序,无论域名是什么。例如,如果有人使用我的服务器认为它仍然是在雅虎搜索“年轻的裸体孩子”的工作代理,他将落在我的网站上。我想现在你明白了我的观点。
然后,如果向我的服务器发送“http://yahoo.com/whatever”请求,我该怎么做才会拒绝该请求?
这是我目前的配置:
:
ProxyRequests Off
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mysite.fr
ServerAlias *.mysite.fr
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:9000/ retry=0
ProxyPassReverse / http://127.0.0.1:9000
# Uncomment the line below if your site uses SSL.
#SSLProxyEngine On
</VirtualHost>
:
ProxyRequests Off
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
答案 0 :(得分:2)
几个月前我找到了一个解决方案,并且意识到我忘了分享我发现的内容:
我在Apache2配置中添加了“垃圾桶”虚拟主机(在httpd.conf中首先声明):
<VirtualHost *:80>
ServerName stop.spam
DocumentRoot /var/www/stopspam
ErrorLog /dev/null
<Directory /var/www/stopspam>
Deny from all
</Directory>
</VirtualHost>
并将其添加到我的防火墙配置中:
iptables -I INPUT -d XXX.XXX.XXX.XXX -p tcp --dport 80 -m string --to 700 \
--algo bm --string 'Host: XXX.XXX.XXX.XXX' -j DROP
这使得防火墙在端口80上丢弃请求,这些请求是使用我的服务器IP而不是域名发送的。
希望这可以帮助别人:)