Nginx 禁用IP IP段

本文介绍如何使用Nginx来阻止恶意爬虫访问,包括直接封禁IP和利用map指令结合$http_x_forwarded_for获取真实IP进行限制的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx 禁用IP IP段

 

最近公司网站被竞争对手用爬虫频繁访问,所以我们这边要禁止这些爬虫访问,我们通过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.重启服务

/usr/local/nginx/sbin/nginx -s 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.重启服务

/usr/local/nginx/sbin/nginx -s reload

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值