设置 Nginx 规则以屏蔽指定 User Agent 的网站爬虫

发布时间: 2020-02-15 21:25:01 作者: 大象笔记

晚上我的一个 wordpress 网站再一次被可恶的爬虫爬挂了。。。

对方疯狂的爬取网页,且瞬间并发无数个请求,丝毫不考虑我这孱弱的阿里云低配服务器的小身板能否承受住。不出意外,我的网站挂掉了。。。

没办法,必须得处理一下。

看了一下 nginx 日志中这些爬虫的请求记录:

所以通过 IP 规则来屏蔽是不可能了,可以简单地用 User Agent 匹配规则的方式来屏蔽这些爬虫。

Nginx 配置

顺便把 Yisou 的爬虫屏蔽了。

if ($http_user_agent ~* (YisouSpider|Scrapy) ) {
    return 410;
}

测试

包含 Scrapy 请求头的测试。

> curl --user-agent "Scrapy" https://www.sunzhongwei.com
<html>
<head><title>410 Gone</title></head>
<body bgcolor="white">
<center><h1>410 Gone</h1></center>
<hr><center>nginx/1.10.3 (Ubuntu)</center>
</body>
</html>
我是一名山东烟台的开发者,联系作者