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

更新日期: 2020-02-15 阅读次数: 354 字数: 228 分类: Nginx

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

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

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

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

  • 每 10 个请求一换 IP
  • 请求头都为 "Scrapy/1.7.3 (+https://scrapy.org)"

所以通过 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>
领取阿里云/腾讯云服务器优惠券

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天写程序,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

tags: nginx 配置 屏蔽爬虫

相关文章

爱评论不评论

近期节日

2020年04月01日 愚人节
2020年04月02日 国际儿童图书日
2020年04月03日 寒食节
2020年04月04日 清明节
2020年04月07日 世界卫生日
2020年04月11日 世界帕金森病日
2020年04月19日 谷雨
2020年04月21日 复活节
2020年04月22日 世界地球日
2020年04月23日 世界读书日
2020年04月26日 知识产权日
2020年04月30日 佛诞
查看更多节日