宝塔面板下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更有效)但存在一定的误封需要客户自行排查。

About the Author