gitpan / plack-middleware-throttle Goto Github PK
View Code? Open in Web Editor NEWRead-only release history for Plack-Middleware-Throttle
Home Page: http://metacpan.org/release/Plack-Middleware-Throttle
Read-only release history for Plack-Middleware-Throttle
Home Page: http://metacpan.org/release/Plack-Middleware-Throttle
NAME Plack::Middleware::Throttle - A Plack Middleware for rate-limiting incoming HTTP requests. SYNOPSIS my $handler = builder { enable "Throttle::Hourly", max => 2, backend => Plack::Middleware::Throttle::Backend::Hash->new(), path => qr{^/api}; sub { [ '200', [ 'Content-Type' => 'text/html' ], ['hello world'] ] }; }; DESCRIPTION This is a "Plack" middleware that provides logic for rate-limiting incoming HTTP requests to Rack applications. This middleware provides three ways to handle throttling on incoming requests : Hourly How many requests an host can do in one hour. The counter is reseted each hour. Daily How many requets an host can do in one hour. The counter is reseted each day. Interval Which interval of time an host must respect between two request. OPTIONS code HTTP code returned in the response when the limit have been exceeded. By default 503. message HTTP message returned in the response when the limit have been exceeded. By defaylt "Over rate limit". backend A cache object to store sessions informations. backend => Redis->new(server => '127.0.0.1:6379'); or backend => Cache::Memcached->new(servers => ["10.0.0.15:11211", "10.0.0.15:11212"]); The cache object must implement get, set and incr methods. By default, you can use "Plack::Middleware::Throttle::Backend::Hash". By default, if no backend is specified, Plack::Middleware::Throttle::Backend::Hash is used. key_prefix Key to prefix sessions entry in the cache. path URL pattern or a callback to match request to throttle. If no path is specified, the whole application will be throttled. white_list An arrayref of hosts to put in a white list. black_list An arrayref of hosts to put in a black list. AUTHOR franck cuny <[email protected]> SEE ALSO LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.