您的位置:首页 > 其它

limiter Gem使用记录一

2012-10-16 10:32 141 查看
对 csdn 提供的 limiter gem 比较感兴趣,想研究一下。可惜它的文档不是很全,说的也不够的详尽,所以,只能自己摸索了。

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 服务器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: