码迷,mamicode.com
首页 > 其他好文 > 详细

Nginx 禁用IP IP段

时间:2018-11-16 10:59:10      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:forward   ring   com   code   for   ret   lock   body   nbsp   

http://www.cnblogs.com/apanly/p/5568716.html

 

最近公司网站被竞争对手用爬虫频繁访问,所以我们这边要禁止这些爬虫访问,我们通过nginx 指令就可以实现了

 

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

1.在 blocksip.conf 文件中加入要屏蔽的ip或者ip端

1
2
3
4
sudo vim /etc/nginx/blocksip.conf
 
deny 180.168.74.26;
deny 91.212.45.0/24;

 

2. 在nginx.conf中包含这个文件

1
2
3
4
5
6
sudo vim /etc/nginx/nginx.conf
http {
.......
.......
include /etc/nginx/blocksip.conf;
}

3.重启服务

1
sudo /etc/init.d/nginx reload

 

方法二:直接在APP业务机器上操作(有时候LB并不能直接操作)

这个时候我们不能通过$remote_addr获取ip,因为经过LB过来,需要同$http_x_forwarded_for获取,使用nginx map指令

1.通过map指令设置 变量

1
2
3
4
5
6
7
8
9
10
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变量判断

1
2
3
4
5
6
7
server{
........
........
    if ( $ip_allowed = "deny" ) {
        return 403;
    }
}

3.重启服务

1
sudo /etc/init.d/nginx reload

 

Nginx 禁用IP IP段

标签:forward   ring   com   code   for   ret   lock   body   nbsp   

原文地址:https://www.cnblogs.com/dhcn/p/9967937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!