屏蔽掉网站莫名奇妙的访问

网站流量大是好事,但是如果全是无效的request则是一件很讨厌的事情。
就这个小站有好一段时间了总是收到莫名其妙的request。
比如:

111.252.4.139 - - [12/Feb/2014:11:20:37 +0800] "GET http://www.soso.com/ HTTP/1.1" 301 184 "http://www.soso.com/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)" "-"

再比如:

172.246.113.194 - - [12/Feb/2014:11:31:37 +0800] "GET http://www.bing.com/search?q=CONTEMPLATES%20%22powered%20by%20wordpress%22&form=QBLH&filt=all HTTP/1.0" 301 184 "http://www.bing.com/" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36" "-"

这些乱七八糟的东西之类的。
虽然我把所有没指定的域名请求都重定向到首页了,但是这一大堆垃圾的垃圾充满了我的access log,明显不是活人干的事,不知道它的目的是什么,这些流量即使重定向到首页也不会有有效的pv,很讨厌有木有?我的io可是要计数收钱的啊。
这是在攻击我吗?也不太像啊,这小vps真想攻击估计早挂了
(ps:现在知道是被当作代理服务器用了,但是request只有固定的几个,所以还是不像是活人干的)
今天烦得受不了了,决定处理一下,毕竟aws只有200w的免费io,万一哪天它发飙了我没注意就是要扣钱的啊。
因为GET http://*****这些肯定不是正常的通过浏览器发出的请求,所以也就好办了。
到处搜罗方法,开始在nginx配置文件里加入


if ($request ~ 'http://') {
return 503;
}

发现虽然503了,但还是一堆log。这里不能使用access_log off。
于是再搜,无果,无奈自己学nginx配置文件,把80端口的默认处理(非预期域名重定向)挪出来,把部分想要的重定向,而默认行为就是关闭各种log然后返回404:

root@sgp:/etc/nginx/conf.d# cat errHostParser.conf
server {
listen 80 default;
#listen [2605:6400:2:fed5:22:111f:94b6:e365]:80 default;
server_name *.de3eb.cn de3eb.cn;

index index.html index.htm;
root /usr/share/nginx/html;
location = / {
rewrite ^/(.*)$ http://blog.de3eb.cn/ permanent;
}
if ($host ~ 'de3eb.c') {
rewrite ^/(.*)$ http://blog.de3eb.cn/ permanent;
}
location / {
access_log off;
error_log off;
return 404;
}
}

吼吼~效果很明显哪,立竿见影哇。
嗯,世界终于清静了。

发表评论?

0 条评论。

发表评论


请输入正确的验证码