尝试谷歌周围的Rails插件,这将允许限制特定资源消耗的请求量。 Django的Piston有一些开源的代码。有没有可用的Rails开箱即用,或者可以肯定地认为,看看Piston如何做,并将它作为Rails插件移植是可以使用的东西?限制对Ruby on Rails API的请求
10
A
回答
8
下面是一些机架中间件实现你以后:http://github.com/dambalah/api-throttling
,这里是关于中间件的开发博客文章:http://blog.messagepub.com/2009/05/05/how-to-rack-middleware-for-api-throttling/
1
有一个SO thread here为什么你可能要进行速率限制在应用程序外部至少,思考的食物。我正在自己寻找这个解决方案,并且无论我是否想在应用程序层中完成这项工作。
2
Rack::Defense是一个用于请求限制和过滤的机架中间件。它设置简单,占地面积小,只有两个依赖项(机架和redis)。您可以过滤在几乎任何条件:IP,API令牌,用户名等
这里是你如何将油门路径/login
POST请求,每个IP每分钟20请求的最大速率的例子:
Rack::Defense.setup do |config|
config.throttle('login', 20, 60 * 1000) do |req|
req.ip if req.path == '/login' && req.post?
end
end
如何油门路径/api/*
GET请求,每个API令牌每秒50个请求的最大速率又如:
Rack::Defense.setup do |config|
config.throttle('api', 50, 1000) do |req|
req.env['HTTP_AUTHORIZATION'] if %r{^/api/} =~ req.path
end
end
disclamer:我机架::国防gem维护者。
相关问题
- 1. Ruby on Rails,如何复制HTTP请求
- 2. HTTP请求 - Ruby on Rails
- 3. 后台Ruby on Rails请求
- 4. Ruby on Rails simple_forms RESTful请求
- 5. 关注请求Ruby on Rails
- 6. Ruby on Rails的as_json限制
- 7. Ruby on Rails simple_format限制
- 8. Ruby on Rails的 - 多POST请求
- 9. API请求限制
- 10. Ruby on Rails的--api
- 11. 对邢API的限制请求
- 12. Ruby on Rails - 测试REST API时发布的请求被拒绝?
- 13. Ruby on Rails HTTPS Post Bad请求
- 14. Ajax删除请求ReactJS和Ruby on Rails
- 15. 在Ruby on Rails中创建PUT请求?
- 16. Ruby on rails post请求路由
- 17. Flex Ruby on Rails http xml请求错误
- 18. Ruby on Rails Web服务与POST请求
- 19. Ruby on Rails接受发布请求
- 20. Ruby on Rails和JSON请求处理
- 21. Ruby on Rails链接请求发送
- 22. Ruby on Rails,多个请求延迟
- 23. Ruby on Rails同时多个HTTP请求?
- 24. Ruby on Rails POST请求失败
- 25. ruby-on-rails路由中的限制
- 26. Instagram的API请求限制
- 27. 使用Savon访问SOAP请求的请求正文(Ruby on Rails)
- 28. Jbuilder在Ruby On Rails中使用POST请求API
- 29. 如何通过AJAX发送对Ruby on Rails的请求
- 30. Ruby on Rails - 限制点击IP