您的位置:首页 > 运维架构 > Nginx

Nginx 禁用IP IP段

2016-06-07 23:40 344 查看
最近公司网站被竞争对手用爬虫频繁访问,所以我们这边要禁止这些爬虫访问,我们通过nginx 指令就可以实现了

方法一:直接在LB机器上封IP

1.在 blocksip.conf 文件中加入要屏蔽的ip或者ip端
$ sudo vim /etc/nginx/blocksip.conf

deny 180.168.74.26;
deny 91.212.45.0/24;


2. 在nginx.conf中包含这个文件
$ sudo vim /etc/nginx/nginx.conf
http {
.......
.......
include /etc/nginx/blocksip.conf;
}
3.重启服务
$ sudo /etc/init.d/nginx reload


方法二:直接在APP业务机器上操作(有时候LB并不能直接操作)
这个时候我们不能通过$remote_addr获取ip,因为经过LB过来,需要同$http_x_forwarded_for获取,使用nginx map指令
1.通过map指令设置 变量
$ sudo vim /etc/nginx/nginx.conf
http{
.......
.......
map $http_x_forwarded_for $ip_allowed {
default allow;
~\s*192.168.22.*$ deny;
~\s*192.168.21.11$ deny;
}
}


2.在vhost 的server 配置中 通过$ip_allowed变量判断
server{
........
........
if ( $ip_allowed = "deny" ) {
return 403;
}
}
3.重启服务
sudo /etc/init.d/nginx reload


至于使用何种方法,大家根据情况自己定夺了。

原文地址:Nginx 禁用IP IP段
标签:nginx block ip deny
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网站 false 竞争对手