全局配置下:

limit_req_zone $anti_spider zone=anti_spider:60m rate=1000r/m;

server下:

#匹配uri里面包含/upload/
if ( $request_uri ~* "/upload/" ) {
set $http_baidu 0;
}
#匹配user_agent里面包含百度蜘蛛
if ( $http_user_agent ~* "Baiduspider" ) {
set $http_baidu "${http_baidu}0";
}
#当上两个条件均满足的时候,设置走限定的条件
if ( $http_baidu = 00 ) {
set $anti_spider $http_user_agent;
}

效果:

当百度爬取带/upload/的链接时,每分钟只能最多请求1000次,超过的默认返回503