Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

19 Commits

Repository files navigation

Limiter

Rack middleware for rate-limiting incoming HTTP requests with black_list and white_list support.

Installation

Add this line to your application's Gemfile:

gem 'limiter', :git => "git://github.com/csdn-dev/limiter.git"

And then execute:

$ bundle

Usage

# config/initializers/limiter.rb# -*- encoding : utf-8 -*-requireFile.expand_path("../redis",__FILE__)Rails.configuration.app_middleware.insert_before(Rack::MethodOverride,Limiter::RateLimiter,:max_get_num=>1000,:get_ttl=>20.minutes,:max_post_num=>20,:post_ttl=>5.seconds,:filter_ip_segment=>true,# default true: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),:limit_callback=>lambda{ |ip| your_callback(ip)})

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

limiter

Resources

Stars

235 stars

Watchers

57 watching

Forks

Releases

Packages

Used by

Contributors

Languages