Nginx屏蔽恶意爬虫方法减轻服务器压力,对文章内容比较多的中文站,就可以屏蔽国外的一些爬虫来抓取,因为是中文网站没必要让一些分析工具的蜘蛛来爬。不要屏蔽bing,google,yahoo等就行。
通过NGINX屏蔽恶意爬虫较全方法(屏蔽爬虫对链接抓取的方法)访问文件被下载/不支持指定目录 以宝塔为例,直接进入宝塔面板,然后选择网站-对应网站设置- 复制到 配置文件 当中,然后重启nginx即可。
1.屏蔽非常见蜘蛛(爬虫)
if ($http_user_agent ~ "Neevabot|TTD-Content|FeedDemon|ThinkBot|MTRobot|SMTBot|LieBaoFast|Punkspider|MauiBot|Barkrowler|MegaIndex.ru|JikeSpider|TkBot|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|SemrushBot|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|bsalsa|DotBot|DataXu|Daum|BLEXBot|Scrapy|PetalBot|proximic|GrapeshotCrawler|Mail.RU_Bot|Nimbostratus-Bot|ias-|AdsTxtCrawler|SeznamBot|evc-batch|AspiegelBot|Re-re Studio|^$" ) { return 403; }
2.防止文件被下载
比如将网站数据库导出到站点根目录进行备份,很有可能也会被别人下载,从而导致数据丢失的风险。以下规则可以防止一些常规的文件被下载,可根据实际情况增减。
location ~ .(zip|rar|sql|bak|gz|7z)$ { return 444; }
3.禁止某个目录执行脚本
比如网站上传目录,通常存放的都是静态文件,如果因程序验证不严谨被上传木马程序,导致网站被黑。以下规则请根据自身情况改为您自己的目录,需要禁止的脚本后缀也可以自行添加。
#uploads|templets|data 这些目录禁止执行PHP location ~* ^/(uploads|templets|data)/.*.(php|php5)$ { return 444; }