nginx屏蔽ip

马哥linux运维 | 最专业的linux培训机构


采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走。

本文介绍如何利用nginx屏蔽ip来实现防止采集,当然也可以通过iptable来实现。

1.查找要屏蔽的ip

awk '{print $1}' nginx.access.log |sort |uniq -c|sort -n

nginx.access.log 为日志文件,

会到如下结果,前面是ip的访问次数,后面是ip,很明显我们需要把访问次数多的ip并且不是蜘蛛的ip屏蔽掉,本例当中我们屏蔽掉165.91.122.67

 ...
  13610 202.112.113.192
  95772 180.169.22.135
 337418 219.220.141.2
 558378 165.91.122.67

2.在nginx的安装目录下面,新建屏蔽ip文件,命名为blockip.conf,以后新增加屏蔽ip只需编辑这个文件即可。 加入如下内容

deny 165.91.122.67; 

保存一下。

3.在nginx的配置文件nginx.conf中加入如下配置,可以放到http, server, location, limit_except语句块,需要注意相对路径,本例当中nginx.conf,blocksip.conf在同一个目录中。

include blockip.conf; 

4.重启一下nginx的服务:/usr/local/nginx/nginx -s reload 就可以生效了。

高级用法:

屏蔽ip的配置文件既可以屏蔽单个ip,也可以屏蔽ip段,或者只允许某个ip或者某个ip段访问。

# 屏蔽单个ip访问

deny IP; 

# 允许单个ip访问

allow IP; 

# 屏蔽所有ip访问

deny all; 

# 允许所有ip访问

allow all; 

#屏蔽整个段即从123.0.0.1到123.255.255.254访问的命令

deny 123.0.0.0/8

#屏蔽IP段即从123.45.0.1到123.45.255.254访问的命令

deny 124.45.0.0/16

#屏蔽IP段即从123.45.6.1到123.45.6.254访问的命令

deny 123.45.6.0/24

如果你想实现这样的应用,除了几个IP外,其他全部拒绝, 那需要你在blockip.conf中这样写

allow 1.1.1.1; allow 1.1.1.2;deny all; 

单独网站屏蔽IP的方法,把include blocksip.conf; 放到网址对应的在server{}语句块, 所有网站屏蔽IP的方法,把include blocksip.conf; 放到http {}语句块。

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-02-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nginx流量复制

    为了实现流量拷贝,Nginx提供了ngx_http_mirror_module模块

    小小科
  • 试试Linux下的ip命令,ifconfig已经过时了

    linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig...

    小小科
  • python web 部署:nginx + gunicorn + supervisor + flask 部署笔记

    python web 部署 web开发中,各种语言争奇斗艳,web的部署方面,却没有太多的方式。 简单而已,大概都是 nginx 做前端代理,...

    小小科
  • LOJ#6085. 「美团 CodeM 资格赛」优惠券(set)

    attack
  • 【Jetson开发项目展示】用 Jetson Nano打造水下航行器

    马欣德拉中央理工学院(MEC)工程学院是马欣德拉集团旗下的一所国际技术学院,该学院推出了首个名为“黑珍珠”的自主水下航行器(AUV)。“黑珍珠”无人水下航行器是...

    GPUS Lady
  • expect 实现自动化命令下发

    随着业务增长需要管理的主机数量也随之增多,在很多情况下需要对批量的主机进行配置变更,然而一台台的修改主机的配置显然是不现实的,也不符合当下运维趋势。能...

    Kevin song
  • 初探序列化与反序列化

    在写程序尤其是写网站的时候,经常会构造类,并且有时候会将实例化的类作为变量进行传输。

    偏有宸机
  • 玩玩树莓派之软件源

    AlicFeng
  • expect--自动批量分发公钥脚本

    院长技术
  • Centos6.0设置静态IP

    vi /etc/sysconfig/network-scripts/ifcfg-eth0 将文件ifcfg-eth0(网络配置)修改为 DEVICE=”eth0...

    苦咖啡

扫码关注云+社区

领取腾讯云代金券