true, // 每秒最大MySQL查询次数(全局) 'max_queries_per_second' => 3, // 时间窗口(秒),固定窗口 'time_window' => 1, // 计数器存储路径 'counter_path' => RUNTIME_PATH . 'rate_limit/', // 队列计数器文件 'queue_counter_file' => RUNTIME_PATH . 'rate_limit/queue_count.txt', // 验证码有效期(秒),30分钟 'captcha_valid_duration' => 1800, // Cookie名称:验证通过后免排队 'bypass_cookie_name' => 'queue_bypass', // 白名单配置 'whitelist' => [ // 静态资源扩展名(不计数不限流) 'static_extensions' => ['.css', '.js', '.jpg', '.jpeg', '.png', '.gif', '.svg', '.ico', '.woff', '.woff2', '.ttf', '.eot', '.webp', '.mp4', '.mp3'], // 免限流的模块/控制器路径前缀 'path_prefixes' => [ '/admin', // 后台管理 '/api/', // API接口(客户端请求) '/health', // 健康检查 '/queue/', // 排队页面自身 '/captcha', // 验证码接口 ], // 免限流的页面类型(index模块下的控制器) 'exempt_controllers' => [ // 用户认证页面 'user', // 登录/注册/找回密码等 // 静态内容页面 'about', // 关于我们 'link', // 友情链接 'doc', // 文档页面 // 纯计算工具页面(不查数据库) 'tool', // 工具页面(部分工具是纯计算) ], // 免限流的具体工具页面(tool控制器下的action) 'exempt_tools' => [ // 纯计算类工具 'calculator', 'bmi', 'age', 'angle', 'bazi', 'bazipaipan', 'bosongfenbu', 'brick', 'car_sign', 'changshi', 'chengfabiao', 'concrete', 'country', 'cube_root', 'curtain', 'daxiaoxie', 'decoration', 'edd', 'ershoufang', 'excel', 'eyesight', 'favicon', 'floors', 'gongjijin', 'grsds', 'hexagon', 'hexagon', 'huangli', 'id_soft', 'image_to_base', 'jianfan', 'jiugongge', 'jjjsq', 'jueduizhi', 'led', 'lingcunzhengqu', 'lipstick', 'lixi', 'loan', 'loans', 'manicure', 'mdq_quiz', 'mingpian', 'minority', 'modulo', 'mortgage', 'moyu', 'muscle', 'named', 'necktie', 'nevoid_phase', 'nick', 'nzjgrsds', 'ocr', 'paint', 'percentage', 'periodic_table', 'photo_compression', 'picseal', 'prepayment', 'qianziwen', 'qr', 'qr_parse', 'raokouling', 'rec_audio', 'relative', 'rmbzdx', 'rmbzmydx', 'safe_color', 'safe_period', 'shengxiao', 'suoxie', 'taiyu', 'techartgroup', 'today', 'universe', 'warring', 'xingjiaozishi', 'yidaliyu', 'yingyu', 'yinniyu', 'yuenanyu', 'zangyu', 'zhongyaocai', 'zhongyong', 'zhouyi', 'zhuangzi', 'zizhitongjian', 'zuci', 'zuowen', 'zuozhuan', // 错误页面 '404', 'error', ], // 免限流的IP(服务器IP等) 'ip_whitelist' => [ '127.0.0.1', '::1', ], ], // 首次访问免排队(用户分享的URL直接打开) 'first_visit_bypass' => true, // 首次访问Cookie名称 'first_visit_cookie' => 'first_visit_bypass', // 首次访问Cookie有效期(秒),60秒 'first_visit_duration' => 60, // 排队页面自动轮询间隔(毫秒) 'queue_poll_interval' => 2000, // 排队页面最大等待时间(秒),超过后提示用户稍后再试 'queue_max_wait' => 300, ];