配置Nginx实现屏蔽爬虫IP

防止爬虫采集绝对是一个站长需要做的事;且不说站内资源被爬走,单是爬虫采集时消耗的服务器资源可能就够很多站长心疼了。

本文实现的方法比较原始,首先要找出爬虫的IP,可通过运行以下命令:

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

这条命令通过分析Nginx的访问日志,可以对IP的访问次数进行统计,并打印访问次数和IP地址;当一个IP频繁请求,要么是搜索引擎蜘蛛的访问,要么是爬虫;

接下来要做的是配置Nginx;Nginx的配置文件通常在 /etc/nginx/下,新建一个文件并命名为 blockip.conf,今后新增需要屏蔽的IP只需按照以下格式写入即可:

deny x.x.x.x;

x.x.x.x 为IP地址;

编辑 nginx.conf 文件,将下面这条语句加入 http 块中,将对所有网站生效;对单个网站生效应写入 server 块中:

include blockip.conf;

需要重启Nginx服务才能生效;

更多格式

屏蔽单个IP访问:

deny x.x.x.x;

允许单个IP访问:

allow x.x.x.x;

屏蔽所有IP访问:

deny all;

允许所有IP访问:

allow all;

屏蔽IP段:

deny x.x.x.x/8;

除了允许指定的IP访问外,其它全部拒绝:

allow x.x.x.1;
allow x.x.x.2;
deny all;

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1388.html

分类: 计算机技术
推荐阅读:
C语言tolower()函数:将字符转换成小写 tolower()是C语言标准库中的一个函数,用于将一个字符转换成对应的小写形式;如果传入的字符参数是一个大写字母,tolower()函数会返回其对应的小写字母;如果参数不是大写字母,则原封不动的返回;
Python id()函数 id()是Python内置函数之一,用于返回给定对象的唯一标识符(即对象在内存中的地址)。具体来说,id()函数返回一个整数,该整数代表给定对象在内存中的地址。因为每个对象在内存中都有一个唯一的地址,所以id()函数返回的值也是唯一的。
Python实现线性搜索(linear search) 线性搜索(linear search)通过从第一个元素开始遍历,与列表中的每个元素进行比较,直到匹配到元素或全部匹配完毕为止;
Python 实现哈希表 哈希表是一种数据结构,其中数据元素的地址或索引值是从哈希函数生成的。在Python中,Dictionary数据类型就是哈希表的实现。
Python hash()函数 在 Python 中,hash() 函数用于获取给定对象的哈希值(散列值),即对象的唯一标识符。
TypeError: 'str' object does not support item assignment 解决方法 引起 TypeError: 'str' object does not support item assignment 错误是因为尝试以下标的方式修改字符串导致的;在Python中,字符串是不可变类型,不能通过下标的方式直接更改某一字符;