This commit is contained in:
2022-12-24 22:10:40 +08:00
parent 84fc1030a7
commit 2a00928da5
4898 changed files with 429855 additions and 77 deletions
@@ -0,0 +1,13 @@
<?php
$enable = config('app.debug', false) && class_exists('WebmanTech\Debugbar\WebmanDebugBar');
return [
'enable' => $enable,
/**
* @see \WebmanTech\Debugbar\WebmanDebugBar::$config
*/
'debugbar' => [
'enable' => $enable,
],
];
@@ -0,0 +1,9 @@
<?php
use WebmanTech\Debugbar\Bootstrap\LaravelQuery;
use WebmanTech\Debugbar\Bootstrap\LaravelRedisExec;
return [
LaravelQuery::class,
LaravelRedisExec::class,
];
@@ -0,0 +1,9 @@
<?php
use WebmanTech\Debugbar\Middleware\DebugBarMiddleware;
return [
'' => [
DebugBarMiddleware::class,
],
];
@@ -0,0 +1,5 @@
<?php
use WebmanTech\Debugbar\DebugBar;
DebugBar::instance()->registerRoute();
+54
View File
@@ -0,0 +1,54 @@
<?php
// +----------------------------------------------------------------------
// | 节流设置
// +----------------------------------------------------------------------
use yzh52521\middleware\Throttle;
// use yzh52521\middleware\throttle\CounterFixed;
// use yzh52521\middleware\throttle\CounterSlider;
use yzh52521\middleware\throttle\TokenBucket;
// use yzh52521\middleware\throttle\LeakyBucket;
use Webman\Http\{Request, Response};
return [
'enable' => true,
// 缓存键前缀,防止键值与其他应用冲突
'prefix' => 'throttle_',
// 缓存的键,true 表示使用来源ip (request->getRealIp(true))
'key' => true,
// 要被限制的请求类型, eg: GET POST PUT DELETE HEAD
'visit_method' => ['GET'],
// 设置访问频率,例如 '10/m' 指的是允许每分钟请求10次。值 null 表示不限制,
// eg: null 10/m 20/h 300/d 200/300
'visit_rate' => '100/m',
// 响应体中设置速率限制的头部信息,含义见:https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting
'visit_enable_show_rate_limit' => true,
// 访问受限时返回的响应( type: null|callable )
'visit_fail_response' => function (Throttle $throttle, Request $request, int $wait_seconds): Response {
return response('Too many requests, try again after ' . $wait_seconds . ' seconds.');
},
/*
* 设置节流算法,组件提供了四种算法:
* - CounterFixed :计数固定窗口
* - CounterSlider: 滑动窗口
* - TokenBucket : 令牌桶算法
* - LeakyBucket : 漏桶限流算法
*/
'driver_name' => TokenBucket::class,
// Psr-16通用缓存库规范: https://blog.csdn.net/maquealone/article/details/79651111
// Cache驱动必须符合PSR-16缓存库规范,最低实现get/set俩个方法 (且需静态化实现)
// static get(string $key, mixed $default=null)
// static set(string $key, mixed $value, int $ttl=0);
//webman默认使用 symfony/cache作为cache组件(https://www.workerman.net/doc/webman/db/cache.html)
'cache_drive' => support\Cache::class,
//使用ThinkCache
//'cache_drive' => think\facade\Cache::class,
];
+10 -3
View File
@@ -13,10 +13,17 @@
*/
return [
#Default保存限流插件和账号密码等,dns仅保存DNS信息
'default' => [
'host' => '127.0.0.1',
'password' => null,
'port' => 6379,
'host' => '121.228.166.201',
'password' => 'Qi2005112!',
'port' => 16379,
'database' => 0,
],
'dns' => [
'host' => '121.228.166.201',
'password' => 'Qi2005112!',
'port' => 16379,
'database' => 1,
],
];
+18
View File
@@ -15,7 +15,25 @@
use Webman\Route;
Route::group('/', function () {
Route::any('',[app\controller\IndexController::class, 'index']);
})->middleware([
#app\middleware\Throttle::class,
app\middleware\Auth::class,
]);
Route::any('/login', [app\controller\login::class, 'index'])->middleware([
app\middleware\Throttle::class,
]);
Route::any('/login/check', [app\controller\login::class, 'check'])->middleware([
app\middleware\Throttle::class,
]);
Route::group('/api/public', function () {
Route::any('/search',[app\controller\api::class, 'search']);
})->middleware([
app\middleware\Throttle::class,
#app\middleware\Auth::class,
]);