最近帮朋友放了一个博客在我的128M小内存VPS上,放上去之后发现他的博客老是有人用外挂发垃圾评论,搞的服务器内存一直飙升,没办法只有通过一些手段来搞定这些讨厌的家伙。
由于服务器在德国,所以中间使用了cdn加速。
Nginx本生自带屏蔽IP功能。
你可以使用:
deny 127.0.0.0/8
这样的方法屏蔽某个IP段,但是这种方法有个缺点就是:服务器会返回403错误,如果攻击者采用密集的攻击,那么你的nginx会为推送403消息错误而挂掉。
而且这种方法不适用于有CDN加速的网站。
那么我们将采取第二种方式来屏蔽这些IP:
首先建立一个blockip.conf在ningx drictory/conf/目录下。
在其中输入:
if ( $proxy_add_x_forwarded_for ~ 96.47.225 ){
return 444;
}
$proxy_add_x_forwarded_for将返回客户端真实IP和CDN的IP
然后在server的配置中include blockip.conf,重新载入nginx配置即可。
附上日志设置格式:
log_format main ‘$proxy_add_x_forwarded_for – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘;
转载请注明:爱开源 » nginx 屏蔽IP段以及设置日志格式