当网站有大量http请求,或者是遭遇cc攻击,可以通过静态缓存来减少服务器的资源消耗。
在/config/route.php文件里增加如下配置
// 请求缓存有效期 默认缓存时间为一小时
'request_cache_expire' => 3600,
//自定义缓存键的生成规则,将带参数的url参数去除再缓存(防止访问/news/1.html 通过改变参数来生成新的请求)
//在这个示例中,我们使用 request->baseUrl() 获取不带参数的 URL,并使用 md5() 函数生成缓存键。这样,无论 URL 中包含哪些参数,只要 URL 的基础部分相同,就会使用相同的缓存。
'request_cache_key' => function (\think\Request $request) {
$url = $request->baseUrl(); // 获取不带参数的 URL
return md5($url); // 使用 URL 的 MD5 值作为缓存键
},
/**如果您需要排除特定的参数,可以在闭包函数中获取参数,并将其从 URL 中移除。在这个示例中,我们排除了 token 参数,这样,即使 URL 中包含 token 参数,也不会影响缓存键的生成。
'request_cache_key' => function (\think\Request $request) {
$url = $request->baseUrl();
$params = $request->param();
unset($params['token']); // 排除 token 参数
$url .= http_build_query($params); // 重建带参数的 URL
return md5($url);
},
**/
//排除验证码规则缓存
'request_cache_except' => [
'/captcha.html',//验证码
'/jijin/',//后台 这里注意一下你的后台路径是不是jijin
'/index/Feedback/',//留言
],
开启以上缓存配置,除了验证码是动态页面,其它所有页面都是静态缓存的。
可以通过后台清空缓存来临时清除缓存。