新建配置配置文件 (例如进入到nginx装置目录下的conf目录,创立: agent_deny.conf)

禁止Scrapy等工具的抓取 if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; }
  • 禁止指定UA及UA为空的拜访
#forbidden Scrapyif ($http_user_agent ~* (Scrapy|Curl|HttpClient)){    return 403;}#forbidden UAif ($http_user_agent ~ "Bytespider|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;}#forbidden not GET|HEAD|POST method accessif ($request_method !~ ^(GET|HEAD|POST)$){    return 403;}

而后,在网站相干配置中的 server段插入如下代码: include agent_deny.conf;

重启nginx:
  • /data/nginx/sbin/nginx -s reload

测试 应用curl -A 模仿抓取即可,比方:

  • curl -I -A 'YYSpider' <<<www.xxx.con>>>
后果
[root@11 conf]# curl -I -A 'YYSpider' www.xxx.cnHTTP/1.1 403 ForbiddenServer: nginx/1.12.0Date: Wed, 24 Apr 2019 11:35:21 GMTContent-Type: text/htmlContent-Length: 169Connection: keep-alive
模仿UA为空的抓取:
  • curl -I -A' ' <<<www.xxx.cn>>>
后果
[root@11 conf]# curl -I -A' ' www.xxx.cnHTTP/1.1 403 ForbiddenServer: nginx/1.12.0Date: Wed, 24 Apr 2019 11:36:06 GMTContent-Type: text/htmlContent-Length: 169Connection: keep-alive
模仿百度蜘蛛的抓取:
  • curl -I -A 'Baiduspider' <<<www.xxx.cn>>>
[root@11 conf]# curl -I -A 'Baiduspider' www.xxx.cnHTTP/1.1 200 OKServer: nginx/1.12.0Date: Wed, 24 Apr 2019 11:36:47 GMTContent-Type: text/htmlContent-Length: 612Last-Modified: Fri, 12 Apr 2019 13:49:36 GMTConnection: keep-aliveETag: "5cb09770-264"Accept-Ranges: bytes

UA类型

FeedDemon             内容采集BOT/0.1 (BOT for JCE) sql注入CrawlDaddy            sql注入Java                  内容采集Jullo                 内容采集Feedly                内容采集UniversalFeedParser   内容采集ApacheBench           cc攻击器Swiftbot              无用爬虫YandexBot             无用爬虫AhrefsBot             无用爬虫YisouSpider           无用爬虫(已被UC神马搜寻收买,此蜘蛛能够放开!)jikeSpider            无用爬虫MJ12bot               无用爬虫ZmEu phpmyadmin       破绽扫描WinHttp               采集cc攻打EasouSpider           无用爬虫HttpClient            tcp攻打Microsoft URL Control 扫描YYSpider              无用爬虫jaunty                wordpress爆破扫描器oBot                  无用爬虫Python-urllib         内容采集Indy Library          扫描FlightDeckReports Bot 无用爬虫Linguee Bot           无用爬虫

nginx 防盗链配置

背景:避免第三方援用链接拜访咱们的图片,耗费服务器资源和网络流量,咱们能够在服务器上做防盗链限度。

实现防盗链的形式有两种:refer形式和签名形式。

refer形式实现防盗链

工作模块:ngx_http_referer_module。

作用变量:$invalid_referer,全局变量。

配置域:server, location

配置:
server {   listen 80;   server_name www.imcati.com refer-test.imcati.com;   root /usr/share/nginx/html;   location ~*\.(gif|jpg|jpeg|png|bmp|swf)$ {        valid_referers none blocked www.imcati.com;        if ($invalid_referer) {            return 403;           }      }   }
  • valid_referers: 指定资源拜访是通过以下几种形式为非法,即白名单。 vaild_referers 无效的援用连贯,如下,否则就进入$invaild_refere,返回403 forbiden。
  • none:容许缺失的头部拜访。
  • blocked:容许referer没有对应值的申请。
  • server_names:若referer站点域名与server_name中本机配的域名一样容许拜访。