nginx 屏蔽UA爬虫蜘蛛、禁止执行脚本、屏蔽ip
以下代码需添加到配置文件server段内
屏蔽指定UA爬虫蜘蛛和UA为空
if ($http_user_agent ~ "Scrapy|Go-http-client|HttpClient|SemrushBot|Webdup|AcoonBot|AhrefsBot|Ezooms|EdisterBot|EC2LinkFinder|jikespider|Purebot|MJ12bot|WangIDSpider|WBSearchBot|Wotbox|xbfMozilla|Yottaa|YandexBot|Jorgee|SWEBot|spbot|TurnitinBot-Agent|mail.RU|perl|Python|Xenu|ZmEu|wget|^$" )
{
return 444;
}
禁止某个目录执行脚本
【单nginx下有效,如使用了nginx+apache组合,php交给apache处理,需要通过.htaccess进行限制】,添加到location ~ .php 之前
location ~* ^/(uploads|templets|data)/.*.(php|php5)$ { return 444; }
屏蔽某个IP或IP段
#屏蔽192.168.5.23这个IP deny 192.168.5.23; #屏蔽192.168.5.* 这个段 deny 192.168.5.0/24;
禁止非GET|HEAD|POST方式的抓取
if ($request_method !~ ^(GET|HEAD|POST)$) {
return 444;
}
防止文件被下载
修改nginx配置之前务必做好备份,修改完毕后需要重载一次nginx,否则不会生效。
location ~ \.(zip|rar|sql|bak|gz|7z)$ {
return 444;
}
上面大部分规则返回444状态码而不是403,因为444状态码在nginx中有特殊含义。nginx的444状态是直接由服务器中断连接,不会向客户端再返回任何消息,比返回403更加暴力。
亲爱的:被墙域名跳转TG:@qianhenetwork QQ:851617266,可否收藏+评论+分享呢?
文章评论 本文章有个评论