You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kong声明式配置模式下启用rate-limiting插件报未启用错误

问题根因

报错由两处配置错误共同导致:

  • Kong的插件加载白名单未包含rate-limiting:Kong采用显式启用插件的机制,只有在KONG_PLUGINS环境变量中声明的插件才会被加载,你当前配置的插件列表仅包含request-transformer,cors,key-auth,acl,缺失限流插件。
  • 声明式配置kong.yml存在YAML缩进错误:rate-limiting插件对应的config配置块缩进层级错误,和插件条目本身平级,没有归属到该插件的配置项下。
  • 日志中出现的the "user" directive makes sense only if the master process runs with super-user privileges为非阻断性警告,是容器非root用户启动导致的,不影响服务功能,无需处理。
修复步骤

1. 更新docker-compose.yml的插件加载配置

找到Kong服务下的KONG_PLUGINS环境变量配置,将rate-limiting加入插件列表,修改后配置如下:

environment:
  KONG_DATABASE: "off"
  KONG_DECLARATIVE_CONFIG: /var/lib/kong/kong.yml
  KONG_DNS_ORDER: LAST,A,CNAME
  KONG_PLUGINS: request-transformer,cors,key-auth,acl,rate-limiting

后续如果需要启用其他官方内置插件或自定义插件,都必须添加到这个逗号分隔的列表中,否则Kong解析配置时会直接抛出插件未启用的错误。

2. 修正kong.yml的缩进错误

调整rate-limiting插件下config块的缩进,让其成为该插件的子配置项,修正后的完整插件配置段如下:

services:
  - name: api-v1
    url: http://api-service:{PORT}
    routes:
      - name: api-v1
        paths:
          - /api/
    plugins:
      - name: cors
      - name: key-auth
        config:
          hide_credentials: false
      - name: acl
        config:
          hide_groups_header: true
          allow:
            - admin
            - anon
      - name: rate-limiting
        config:
          # 每秒允许的HTTP请求数
          second: 5
          # 每小时允许的HTTP请求数
          hour: 10000
          policy: local
          fault_tolerant: true
          hide_client_headers: false

3. 重启服务验证配置

配置修改完成后,执行命令重建启动Kong容器:

docker-compose up -d --force-recreate kong

启动后查看容器日志,若不再出现插件未启用的解析错误,即代表修复完成。

内容的提问来源于stack exchange,提问作者Aditya Mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 22:21:57