【问题标题】:Rate limit for traefik using json data from request使用来自请求的 json 数据的 traefik 速率限制
【发布时间】:2022-07-08 21:29:02
【问题描述】:

我想为 json 数据中存在带有样本值的参数的请求设置 rateLimit

例子

curl -X \'POST\'   \'http://127.0.0.1/\'   -H Host:whoami.docker.localhost   -H \'accept: application/json\'   -H \'Content-Type: application/json\'   -d \'{
  \"sender\": \"Tester\",
  \"receiver\": [
    \"receiver1\" 
  ],
  \"text\": \"Text\",
  \"service\": \"service\" 
}\'

我需要为 sender=Tester 限制 100rps,其他发件人必须没有 rateLimit

我试过这样的配置:

[http.routers]
   [http.routers.whoami_1]
      rule = \"Host(`whoami.docker.localhost`)&&Query(sender=Tester)\"
      service = \"whoami\"
      entrypoints = [\"web\"]
      middlewares = [\"test-ratelimit\"]

[http.middlewares]
  [http.middlewares.test-ratelimit.rateLimit]
    average = 100

但是收到了

404 page not found

如何从请求中的 json 数据中获取参数并为路由或中间件设置规则?

    标签: parsing traefik rate-limiting


    【解决方案1】:

    Traefik 不提供中间件来从请求中提取 JSON 有效负载。

    您可能可以尝试create a custom plugin 提取值并自行应用速率限制。

    【讨论】:

      猜你喜欢
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-05
      • 2013-12-13
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      相关资源
      最近更新 更多