nginx下禁止无用User Agent抓取网站

nginx环境是最受欢迎的WEB服务器,virmach中文网就是使用的nginx作为web服务器。

前几天查看virmach网站的日志发现,不少眼生的爬虫使劲的爬网站,搜索了下,这些爬虫根本没有,基本都是垃圾爬虫。

为了禁止垃圾User Agent爬虫抓取网站,达到节省宽带和节省资源的目的,就得想办法禁止垃圾User Agent爬虫来抓取自己的网站了,这里nginx中文网分享下NGINX下是如何实现禁止无用User Agent抓取网站的。

在/usr/local/nginx/conf/rewrite目录下新建agent_deny.conf文件【lnmp默认目录】,内容如下:

#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
#禁止指定UA及UA为空的访问
if ($http_user_agent ~ "FeedDemon|JikeSpider|Indy Library|Alexa
Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft
URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports
Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$"
) {
return 403;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}

然后再需要使用的网站配置文件中加入如下内容:

include agent_deny.conf;

如果不知道加到哪里?那就请加到类似语句的地方,呵呵~

好了后,重启下你的nginx即可。nginx下就禁止了无用User Agent抓取网站内容了。