limiter Gem使用记录一

来源:互联网 发布:国外二维码扫描软件 编辑:程序博客网 时间:2024/04/30 01:52
对 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.rbrequire 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 服务器