西数超哥博客
运维经验教程分享

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

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

防止文件被下载

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

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

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

 

赞(0)
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥博客 » nginx 屏蔽UA爬虫蜘蛛、禁止执行脚本、屏蔽ip