【待反馈】《nginx:[emerg]“limit_req”指令不允许》如何解决...
为了能快速了解并处理您的问题,请提供以下基础信息:面板、插件版本:Linux面板稳定版9.0.0Nginx 1.24.0
安装了Nginx免费防火墙 8.3
系统版本:
Debian GNU/Linux 12 (bookworm) x86_64(Py3.7.16)
问题描述:
想限制蜘蛛抓取频率,配置limit_req_zone提示nginx:“limit_req”指令不允许
如何解决这个问题???
相关截图(日志、错误):
您好,检查一下是不是limit_req指令放置的位置不正确,
正常的话是需要放在http、server、location这些块内
运维技术南一 发表于 2024-10-17 16:39
您好,检查一下是不是limit_req指令放置的位置不正确,
正常的话是需要放在http、server、location这些块内 ...
# 创建 spider_limit 蜘蛛请求限制-start
limit_req_zone $remote_addr zone=spiderlimit:10m rate=10r/m; # 每分钟10次
# 创建 spider_limit 蜘蛛请求限制-end
我放在nginx配置文件的http{...}字段中
# 应用 spider_limit 蜘蛛请求限制-start
location / {
# 通过 User-Agent 检查设定需要限制的蜘蛛
if ($http_user_agent ~* (Googlebot|Bingbot|Baiduspider)) {
# 限制请求速度,即同一时间只能同时处理5个请求
limit_req zone=spiderlimit burst=5 nodelay;
}
}
# 应用 spider_limit 蜘蛛请求限制-end
我放在站点配置文件的server{...}字段中,或者添加到站点伪静态规则中,都不行
我使用nginx -V命令查看没有ngx_http_limit_req_module模块,
是不是需要把ngx_http_limit_req_module模块编译进入Nginx里面,
但是需要如何添加编译呢??? Woxi 发表于 2024-10-17 16:51
我放在nginx配置文件的http{...}字段中
我放在站点配置文件的server{...}字段中,或者添加到站点伪静态 ...
根据报错提示检查一下
安装模块的话需要把站点文件备份好,然后卸载nginx,重新自定义编译安装nginx
页:
[1]