Woxi 发表于 2024-10-17 15:27:44

【待反馈】《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”指令不允许
如何解决这个问题???
相关截图(日志、错误):

堡塔运维南一 发表于 2024-10-17 16:39:36

您好,检查一下是不是limit_req指令放置的位置不正确,
正常的话是需要放在http、server、location这些块内

Woxi 发表于 2024-10-17 16:51:38

运维技术南一 发表于 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里面,
但是需要如何添加编译呢???

堡塔运维南一 发表于 2024-11-5 15:35:50

Woxi 发表于 2024-10-17 16:51
我放在nginx配置文件的http{...}字段中

我放在站点配置文件的server{...}字段中,或者添加到站点伪静态 ...

根据报错提示检查一下
安装模块的话需要把站点文件备份好,然后卸载nginx,重新自定义编译安装nginx
页: [1]
查看完整版本: 【待反馈】《nginx:[emerg]“limit_req”指令不允许》如何解决...