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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章