云服务器
云主机评测

云服务器负载100%?宝塔面板+Nginx屏蔽恶意user_agent

阿里云代金券 腾讯云代金券 VULTR优惠码 Ucloud云主机

我们在网站建设和网站维护过程中经常会遇到网站卡住的情况,如果你的云服务器使用了宝塔面板进行可视化管理,此时登录宝塔面板,就会发现云服务器运行堵塞,负载状态100%。此时重启服务器会得到暂时的缓解,但是很快又会重蹈覆辙。其实,这是因为有人在攻击或者采集你的网站,我们可以通过宝塔面板+Nginx屏蔽恶意user_agent访问,减轻服务器负载,让网站运行更流畅。负载状态100%

UA是user_agent浏览器访问标识,空UA基本可以判定为采集器。以前是可以使用宝塔nginx防火墙屏蔽的,现在宝塔官方把这个功能删了,那么只能使用nginx来屏蔽了。网上找了一些方法来屏蔽这些垃圾蜘蛛访问网站。

user_agent屏蔽方法一:

先分享一个简易版:

宝塔面板 – 网站 – 设置 – 配置文件,第八行添加以下代码:

如图:

屏蔽空UA

1、禁止空agent的浏览器访问

if ($http_user_agent~* "^$" {
return 403;
}
2、禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 403;
}
3、禁止指定UA的访问
if ($http_user_agent ~ "ApacheBench|WebBench|HttpClient|Java|python|Go-http-client|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Feedly|UniversalFeedParser|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms" )
{
return 403;
}
4、禁止爬虫抓取
if ($http_user_agent ~* "qihoobot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") 
{ 
    return 403; 
}

5、禁止非GET|HEAD|POST方式的抓取

if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}

6、禁止特殊的user_agent的访问

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;
}

7、进阶版,以上代码综合使用:

 #禁止空agent的浏览器访问
if ($http_user_agent ~ ^$) {
return 444;
}
#禁止Scrapy等工具的抓取
if ($http_user_agent ~* (Scrapy|Curl|HttpClient)) {
return 444;
}
#禁止指定UA的访问
if ($http_user_agent ~ "ApacheBench|WebBench|HttpClient|Java|python|Go-http-client|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Feedly|UniversalFeedParser|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms" )
{
return 444;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 444;
}
#禁止特殊的user_agent的访问
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 444;
}

常见的一些蜘蛛爬虫user_agent。

UA类型描述
ApacheBench性能压测
WebBench性能压测
WinHttp采集cc
HttpClienttcp攻击
Jmeter压力测试
BOT/0.1 (BOT for JCE)sql注入
CrawlDaddysql注入
Indy Library扫描
ZmEu phpmyadmin扫描
Microsoft URL Control扫描
jauntywordpress扫描器
Java内容采集
Python-urllib内容采集
Jullo内容采集
FeedDemon内容采集
Feedly内容采集
UniversalFeedParser内容采集
Alexa Toolbar内容采集
Swiftbot无用爬虫
YandexBot无用爬虫
AhrefsBot无用爬虫
jikeSpider无用爬虫
MJ12bot无用爬虫
oBot无用爬虫
FlightDeckReports Bot无用爬虫
Linguee Bot无用爬虫
EasouSpider无用爬虫
YYSpider无用爬虫

大家根据需要进行判断和屏蔽。

我们再看一些常见搜索引擎蜘蛛的User_Agent:

百度蜘蛛

Baiduspider+(+http://www.baidu.com/search/spider.htm”)

Google蜘蛛

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Googlebot/2.1 (+http://www.googlebot.com/bot.html)

Googlebot/2.1 (+http://www.google.com/bot.html)

雅虎蜘蛛(分别中国和美国蜘蛛)

Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html”)

Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp”)

新浪爱问蜘蛛

iaskspider/2.0(+http://iask.com/help/help_index.html”)

Mozilla/5.0 (compatible; iaskspider/1.0; MSIE 6.0)

搜狗蜘蛛

Sogou web spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07″)

Sogou Push Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07″)

网易蜘蛛

Mozilla/5.0 (compatible; YodaoBot/1.0; http://www.yodao.com/help/webmaster/spider/”; )

MSN蜘蛛

msnbot/1.0 (+http://search.msn.com/msnbot.htm”)

user_agent屏蔽方法二:

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|Googlebot|JikeSpider|SemrushBot|^$" ) {
return 403;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}

2、网站设置里面添加:

宝塔 – 【网站】-【设置】点击左侧 【配置文件】选项卡,在 “#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则” 上方空白行插入红色字体的代码:“include agent_deny.conf; ” 保存后即可生效,这样这些蜘蛛或工具扫描网站的时候就会提示403禁止访问。

如果你网站使用火车头采集发布,使用以上代码会返回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|Googlebot|JikeSpider|SemrushBot" ) {
return 403;
}
#禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 403;
}

以上两种方法都可以屏蔽恶意User_Agent的访问,降低云服务器负载,具体如何选择大家可以根据自己的喜好使用。

赞(0)
转载请保留:云门网 » 云服务器负载100%?宝塔面板+Nginx屏蔽恶意user_agent

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址