宝塔面板下nginx屏蔽恶意蜘蛛抓取
宝塔面板下nginx屏蔽恶意蜘蛛抓取
做跨境网站经常会遇到一个问题就是服务器没有多少流量,甚至没有开始推广的情况下,服务器的负载异常的高。经过排查客户访问日志发现其实有很多没必要的搜索引擎(蜘蛛)一直在爬取你网站内容导致。
尤其以 semrush ,ahrefs,seznam,HuaWei 这几家搜索引擎爬取的特别厉害,且不遵循国际 robots.txt 协议。小编遇过严重时服务器平均负载高达 80% 这将导致了服务器崩溃,导致了正常客户无法访问网站,以至于订单流失。
鉴于目前国内使用宝塔面板的用户占有率比较大,今天分享 宝塔面板 使用 Nginx 前端的情况下 屏蔽恶意蜘蛛的网站内容抓取。
操作方法如下:
1、登录宝塔操作面板 – 文件管理器 -进入指定目录:
/www/server/nginx/conf
新建文本,并命名为
agent_deny.conf
紧接着填入以下代码:
#禁止Scrapy等工具的抓取 if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; } #禁止指定UA及UA为空的访问 if ($http_user_agent ~* "FeedDemon|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|Bytespider|Ezooms|Aspiegel|JikeSpider|SemrushBot|^$" ) { return 403; } #禁止非GET|HEAD|POST方式的抓取 if ($request_method !~ ^(GET|HEAD|POST)$) { return 403; }
2、填入代码后将需要屏蔽恶意搜索引擎爬取的网站 调取你刚填写的 agent_deny.conf 实现 拦截
宝塔后台(左侧导航栏) – 网站 – (指定域名)- 设置 – 配置文件
填入以下内容:
root /www/wwwroot/www.safetohost.com;
#屏蔽恶意搜索引擎
include agent_deny.conf;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
保存文件后,在看网站的访问日志会发现 带有指定 user-agent 协议头的 访问 已全部返回 403 错误.
如果你的网站需要使用到 火车头 采集数据的情况下,若是使用上方的代码 会被认为是 被禁用的爬虫,这时需要使用下方的代码(针对需要使用火车头采集器的用户)。
#禁止Scrapy等工具的抓取 if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) { return 403; } #禁止指定UA访问。UA为空的可以访问,比如火车头可以正常发布。 if ($http_user_agent ~ "FeedDemon|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|YandexBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|Bytespider|Ezooms|Aspiegel|JikeSpider|SemrushBot" ) { return 403; } #禁止非GET|HEAD|POST方式的抓取 if ($request_method !~ ^(GET|HEAD|POST)$) { return 403; }
如果使用的 APACHE 处理端 则需要通过 .htaccess 实现恶意搜索引擎的拦截,上方的规则无法使用。
操作方法:
文件管理器 – 需要屏蔽的网站 – 编辑 .htaccess
填入以下代码:
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} (^$|FeedDemon|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) [NC] RewriteRule ^(.*)$ - [F]
保存文件即可完成
附上无用的 UA 集,用户可根据自身需求增添相关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 无用爬虫
当你网站被CC 攻击时 ,也可以使用以上的方法 ,进行精准的拦截(比单纯的屏蔽IP更有效)但存在一定的误封需要客户自行排查。