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

分类: 计算机技术
推荐阅读:
VirtualBox菜单隐藏了怎么打开? 我们使用VirtualBox运行虚拟机后,可以通过视图菜单改变虚拟机的显示方式,其中包括全屏模式,无缝模式,自动缩放模式,使用了这些模式后,可能导致上方的菜单消失;
Python检查一个数是奇数还是偶数 本文将使用Python检查一个数是奇数还是偶数;偶数是能被2所整除的整数,若不是,那它就是奇数;奇数初以2的余数是1;
Rust函数返回不同类型的值 在Rust中,函数可以返回不同类型的值,一种常见的方法是使用枚举类型,其中枚举的不同变体可以包含不同类型的值;
Python any()函数 any()是 Python 内置函数之一,接受一个可迭代对象(例如列表、元组、集合或生成器)作为参数,如果至少有一个元素在逻辑上等价于 True,则返回 True,否则返回 False。
通过两个已知点,找出直线(y = kx + b)的方程式 解决方程组 y1 = kx1 + b和y2 = kx2 + b;其中x1,y1,x2,y2是已知变量;k和b是要找到的系数。
Linux使两个文件的权限相同 在Linux系统下,你可以使用一条命令就能令两个文件的权限相同;