禁用一些User Agent可以节省一些流量也可以防止一些恶意的访问,尤其是部份搜索引擎爬虫,例如我们的网站就是一个地方性站点,没有必要被一些国外的搜索引擎爬虫索引,都可以禁掉,具体操作如下:
1、编辑该文件:
# vi /usr/local/nginx/conf/vhosts/yourpool.conf
2、增加以下内容(示例):
#禁止Scrapy等工具的抓取,注意已经取消curl抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
#禁止恶意user_agent访问
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|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms|^$" ) {
return 403;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}
有一些单词中间有空格,所以两边需要使用双引号,禁用了若干个搜索引擎爬虫,还有几个恶意灌水机等,可以分析日志根据情况屏蔽恶意的User Agent。