每个用户对rails中的函数调用进行速率限制

Chr*_*ton 9 ruby-on-rails rate-limiting ruby-on-rails-3

任何人都知道我怎么会这样做?很难在线查找信息.我发现最好的是它的宝石,但我只能想到如何实现该应用程序.

Ana*_*oly 8

它可以通过以下方式处理:1)webserver 2)rack-application.一切都取决于你需要什么.我们使用内置的nginx功能来限制API请求:

     limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
     limit_req zone=one burst=2;
Run Code Online (Sandbox Code Playgroud)

另一个解决方案是机架式油门.

这是Rack中间件,提供用于限制对Rack应用程序的传入HTTP请求的速率逻辑.您可以将Rack :: Throttle与任何基于Rack的Ruby Web框架一起使用,包括Ruby on Rails 3.0和Sinatra.