limiter Gem使用记录一

对 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 服务器

发布了198 篇原创文章 · 获赞 8 · 访问量 27万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章