nginx 屏蔽UA爬虫蜘蛛、禁止执行脚本、屏蔽ip

admin 2019-01-04 AM 544℃ 0条


server段以下代码需添加到配置文件server段内


 屏蔽指定UA爬虫蜘蛛和UA为空


if ($http_user_agent ~* "Bytespider|PetalBot|SM-G900P|Java|PhantomJS|SemrushBot|Scrapy|Webdup|AcoonBot|AhrefsBot|Ezooms|EdisterBot|EC2LinkFinder|jikespider|Purebot|MJ12bot|WangIDSpider|WBSearchBot|Wotbox|xbfMozilla|Yottaa|YandexBot|Jorgee|SWEBot|spbot|TurnitinBot-Agent|mail.RU|perl|Python|Wget|Xenu|ZmEu|^$" )
{
  return 444;
}

 


 禁止某个目录执行脚本


【单nginx下有效,如使用了nginx+apache组合,php交给apache处理,需要通过.htaccess进行限制】,添加到location ~ .php之前


location ~* ^/.*(uploads|templets|data|style|styles|img|image|images|css|js)/.*.(php|php5|cer)$ {
  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;
}


 防止文件被下载


location ~* .(zip|rar|sql|bak|gz|7z)$ {
  return 444;
}




修改nginx配置之前务必做好备份,修改完毕后需要重载一次nginx,否则不会生效。

上面大部分规则返回444状态码而不是403,因为444状态码在nginx中有特殊含义。nginx的444状态是直接由服务器中断连接,不会向客户端再返回任何消息,比返回403更加暴力。

https://www.cnblogs.com/out8/p/4331909.html

https://www.xiaoz.me/archives/11095


标签: nginx, 伪静态

非特殊说明,本博所有文章均为博主原创。