Nginx中限制某些爬虫的访问请求次数

2025-2-25 14:44:49 [大杂烩 - PC与手机]

现在爬虫太多了,如何在不影响正常用户访问的情况下,限制某些疯狂爬虫的采集呢?下面是Nginx下的配置,放在HTTP块。


# 定义常见爬虫的 User - Agent 正则表达式

map $http_user_agent $myzone {
default "";
"~*(YisouSpiderGPTBotcrawlerpythonjavacurlwgethttpclient)" $binary_remote_addr;
}
# 设置爬虫访问频率限制空间 10M内存空间约16万IP,每秒钟访问一次
limit_req_zone $myzone zone=myspider:10m rate=1r/s;
# 限制生效,可以放在Server,Location。burst为请求队列大小,超过5个就直接超时。

limit_req zone=myspider burst=5 nodelay;

#返回的状态码 默认是403

limit_req_status 429;