By admin |

背景

对生产环境运行的站点,随时会有攻击或者恶意访问的问题,不可避免。 但是能抗住访问而不会导致站点崩溃则是需要努力的方向。 针对Drupal站点,如果已经启用了page_cache模块,则会对页面html进行缓存,相关数据存储在cache_page表中。
对正常的url,这样没问题;如果是一个不存在的url,则也会在cache_page中插入记录,如果数据库空间较小,则很容易消耗完数据库的空间;如果数据库设置了主从复制,则也会创建很多额外的binlog,占用额外的空间。

解决方法

在settings.php设置如下:

## 系统默认设置的ttl是3600s,也就是一小时;配合cron可以自动清理并释放空间。
$settings['cache_ttl_4xx'] = 0;

参考代码