首页 网建技术 利用Nginx user_agent 屏蔽指定的爬虫怎么实现跳转,详细教程如下

利用Nginx user_agent 屏蔽指定的爬虫怎么实现跳转,详细教程如下

今天小编遇到网友一个网站负载比较大,然后通过日志看到有乱七八糟的爬虫在抓取。如果我们需要设置的话,可以通过一些CDN前端过滤也是可以的,同时,我们可以用Nginx设置过滤爬虫,比如…

今天小编遇到网友一个网站负载比较大,然后通过日志看到有乱七八糟的爬虫在抓取。如果我们需要设置的话,可以通过一些CDN前端过滤也是可以的,同时,我们可以用Nginx设置过滤爬虫,比如用到user_agent(UA)进行过滤。在这里简单的整理几个常用的UA过滤办法。

#禁止Scrapy等爬虫工具的抓取
if ($http_user_agent ~* "Scrapy|Sogou web spider") {
  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|LinkpadBot|Ezooms|^$" )
{
  return 403;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
  return 403;
}
我们可以直接单独加到当前站点的conf文件中,或者是建立一个单独的过滤.conf文件,然后在当前站点配置中引用。

我们还可以针对特殊的UA进行过滤。

if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") { 
   return 404;
}
比如直接那日志中看到的UA过滤。

我们还可以利用UA过滤不同的设备跳转,这个就是我们很多时候在不同设备打开某些网站跳转不同的页面都用这个控制的。

if ( $http_user_agent ~* "(iPhone|iPad|iPod|iOS|Android|Mobile|nokia|samsung|htc|blackberry)") {
            set $client "1";
          }        
        if ($client = '1') {
              proxy_pass http://111.com;
              break;
        }
        if (!-f $request_filename) {
              proxy_pass http://222.com;
               break;
        }
我们可以根据灵活需要进行Nginx过滤。
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: 小小编

为您推荐

SSH的使用详解

SSH的使用详解

今天小编为大家分享一篇关于SSH 的介绍和使用方法的文章。本文从SSH是什么出发,讲述了SSH的基本用法,之后在远程登录...
宝塔linux面板安装软件错误:宝塔面板检测到系统目录不可写。解决方法

宝塔linux面板安装软件错误:宝塔面板检测到系统目录不可写。解决方法

错误:宝塔面板检测到系统目录不可写。 1、安装了宝塔系统加固,请先关闭; 2、安装了云锁,请关闭系统加固功能; 3、安装...
宝塔linux面板node.js项目服务器重启丢失,pm2列表被删除清空解决方案

宝塔linux面板node.js项目服务器重启丢失,pm2列表被删除清空解决方案

宝塔linux面板node.js项目服务器重启丢失,pm2列表被删除清空解决方案 近期由于服务器异常重启,发现node....
宝塔linux面板 apache网站访问报错503 Service Unavailable解决

宝塔linux面板 apache网站访问报错503 Service Unavailable解决

宝塔linux面板 apache网站访问报错: 503 Service Unavailable Service Unav...
宝塔windows面板apache开启Gzip压缩方法

宝塔windows面板apache开启Gzip压缩方法

感谢网友安好反馈问题,经检查少写一个模块导致开启后apache无法启动 2018/05/18更正 第1步 apache配...

发表回复

返回顶部