如何将Apache拦截恶意爬虫的SetEnvIf指令转为Nginx配置?
Apache防坏爬虫规则转Nginx配置
原Apache代码通过匹配User-Agent标记恶意爬虫并拒绝访问,对应Nginx的配置如下:
# 匹配指定恶意爬虫的User-Agent,返回403拒绝访问 if ($http_user_agent ~* (yandex|baidu|spider|mj12|blex|webmeup|ichiro|moget|naverbot|sogou|youdao|majestic|copyscape|sitesnagger|teleportpro|copier|reaper|stripper|webzip|peek|scrape|grub|linkdex|zyborg|zibber|bullseye|blowfish|backdoor|spyder|download|demon|linklooker|emailcollector|emailsiphon|emailwolf|creep|getright|suck|ninja|ahrefsBot|semrush|petalbot|dataforseobot|dotbot|meta)) { return 403; }
配置说明:
~*表示不区分大小写的正则匹配,对应Apache的SetEnvIfNoCase- 把所有需要拦截的爬虫关键词整合到正则表达式中,匹配到后直接返回
403 Forbidden,实现原规则中拒绝恶意爬虫的效果 - 将这段代码放到你的Nginx站点配置的
server块内即可生效
内容的提问来源于stack exchange,提问作者pathfinder
相关产品推荐
相关产品推荐

