Webman实战教程:基于 Lua 脚本简单限流插件

2023-10-31 15:55:31 浏览数 (2)

简介

为防止滥用,你应该考虑对您的 API 限流。例如,您可以限制每个用户 10 分钟内最多调用 API 100 次。如果在规定的时间内接收了一个用户大量的请求,将返回响应状态代码 429 (这意味着过多的请求)。

安装

代码语言:javascript复制
composer require tinywan/limit-traffic

使用

应用中间件

config/middleware.php 中添加全局中间件如下:

代码语言:javascript复制
return [
    // 全局中间件
    '' => [
        // ... 这里省略其它中间件
        TinywanLimitTrafficMiddlewareLimitTrafficMiddleware::class,
    ],
    // api应用中间件
    'api' => [
        TinywanLimitTrafficMiddlewareLimitTrafficMiddleware::class,
    ]
];

路由中间件

注意:需要 workerman/webman-framework 版本 >= 1.0.12

我们可以给某个一个或某一组路由设置中间件。例如在 config/route.php 中添加如下配置:

代码语言:javascript复制
Route::any('/admin', [appadmincontrollerIndex::class, 'index'])
->middleware([TinywanLimitTrafficMiddlewareLimitTrafficMiddleware::class]);

// 分组路由
Route::group('/blog', function () {
   Route::any('/create', function () {return response('create');});
})->middleware([TinywanLimitTrafficMiddlewareLimitTrafficMiddleware::class]);

0 人点赞