配置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

分类: 计算机技术
推荐阅读:
Linux下快速的重命名文件 在Linux系统下,不知道你们是怎么重命名文件的,虽然方法很多,但我这个绝对是最简单且最高效的,而且只有一条命令就可实现:
C语言实现斐波那契数列 对于斐波那契数列,其下一个数字是前两个数字的和,例如:0、1、1、2、3、5、8、13、21等等;斐波那契数列的前两个数为0和1;使用C语言实现斐波那契数列的方法有两种,递归和无递归;
Python 多线程的运用 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。
Python all()函数 all()是Python内置函数之一,它接收一个可迭代对象,如果可迭代对象中的所有元素都为真值(非零、非空、非None等),则返回True,否则返回False。
MIPS汇编语言教程 MIPS(Microprocessor without Interlocked Pipeline Stages)是一种基于RISC(Reduced Instruction Set Computer,精简指令集计算机)体系结构的微处理器架构。MIPS的设计理念是简化指令集,减少指令执行时间和硬件开销,提高处理器性能和效率。
Python str()函数 str() 函数用于将指定的对象转换为字符串类型。如果对象已经是字符串类型,则返回对象本身;否则,会调用对象的 __str__() 方法来进行转换。