嘗試谷歌周圍的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