nodejs基于koa框架的IP访问限流

插件

koa-ratelimit

使用‍

const Koa = require('koa');

const ratelimit = require('koa-ratelimit');

const Redis = require('ioredis');

const app = new Koa();

app.use(ratelimit({

'driver': 'redis',

'db': new Redis({

'max_clients': 10,

'min_clients': 1,

'port': 6379,

'host': '127.0.0.1',

'password': '1234567',

}),

'duration': 60000, // 时间 毫秒

'errorMessage': 'Sometimes You Just Have to Slow Down.',

'id': ctx => ctx.ip, // IP作为唯一key

'headers': {

'remaining': 'Rate-Limit-Remaining',

'reset': 'Rate-Limit-Reset',

'total': 'Rate-Limit-Total',

},

'max': 5, // 60秒内最大访问次数5

'disableHeader': false,

'whitelist': ctx => { // 白名单

// console.log('whitelist===========>', ctx);

// some logic that returns a boolean

'blacklist': ctx => { // 黑名单 高频访问ip 可以写在这里

// console.log('blacklist===========>', ctx);

}));

app.use(async ctx => {

ctx.body = 'Stuff!';

});

app.listen(3000);

console.log('listening on port 3000');

访问 http://127.0.0.1:3000

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200912A00Q9300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券