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