limiter gem 的作用:
Rack middleware for rate-limiting incoming HTTP requests with black_list and white_list support.
大體意思是, 通過白名單 和 黑名單 來限制 http 訪問
項目地址是:
https://github.com/csdn-dev/limiter#readme
使用例子:
1, 安裝
gem 'limiter', :git => "git://github.com/csdn-dev/limiter.git"
gem 'redis' #需要redis支持
2, create config/initializers/redis.rb 和 config/initializers/limiter.rb
#config/initializers/redis.rb
$redis = Redis.new(:host => "localhost", :port => "6379")
# config/initializers/limiter.rb
require File.expand_path("../redis", __FILE__)
Rails.configuration.app_middleware.insert_before(Rack::MethodOverride,
Limiter::RateLimiter,
:black_list => Limiter::BlackList.new($redis),
:white_list => Limiter::WhiteList.new($redis),
:allow_path => Rails.env.development? ? /^\/(assets|human_validations|simple_captcha)/ :
/^\/(human_validations|simple_captcha)/,
:message => "<a href='/human_validations/new'>我不是機器人</a>",
:visit_counter => Limiter::VisitCounter.new($redis)
)
3, 啓動 redis服務器 和 rails 服務器