缓存Apache的mod_cache在Debian Etch上
版本1.0
作者:Falko Timme
本文介绍如何使用Apache的mod_cache缓存您的网站内容在Debian Etch上。 如果您拥有高流量的动态网站,可以在每个请求上生成大量数据库查询,您可以通过缓存内容几分钟或更长时间(取决于更新内容的频率)来显着减少服务器负载。
我不会保证这将为您工作!
1初步说明
我假设你有一个工作的Apache2设置(Apache 2.2.x - 在该版本之前,mod_cache被认为是实验性的)从Debian存储库 - 在Debian Etch存储库中的Apache版本是2.2.3,所以你应该是好的走。
我在这里使用文档root / var / www
作为我的测试vhost - 如果您的文档根目录不同,您必须调整此文件。
2启用mod_cache
mod_cache有两个管理高速缓存存储的子模块, mod_disk_cache (用于存储硬盘上的内容)和mod_mem_cache (用于存储内存中比缓存更快的内容)。 确定要使用哪一个,并继续使用第2.1章(mod_disk_cache)或2.2(mod_mem_cache)。
2.1 mod_disk_cache
mod_disk_cache配置存储在/etc/apache2/mods-available/disk_cache.conf中
,所以我们来编辑一个:
vi /etc/apache2/mods-available/disk_cache.conf
确保取消对CacheEnable磁盘/
行的注释,以使最小配置如下所示:
# a2enmod-note: needs-configuration <IfModule mod_disk_cache.c> CacheRoot /var/cache/apache2/mod_disk_cache # If you enable disk caching, you need to use htcacheclean from the # apache2-utils package to ensure that the cache does not grow indefinitely. # See the htcacheclean man page for details. # There is currently no mechanism in the Debian package to start htcacheclean # automatically, but it is planned to add such a mechanism in the future. CacheEnable disk / CacheDirLevels 5 CacheDirLength 3 </IfModule> |
您可以在http://httpd.apache.org/docs/2.2/mod/mod_disk_cache.html上找到有关这些配置选项和进一步配置选项的说明 。
现在我们可以启用mod_cache和mod_disk_cache:
a2enmod cache
a2enmod disk_cache
/etc/init.d/apache2 force-reload
为了确保我们的缓存目录/ var / cache / apache2 / mod_disk_cache
不会随着时间填满,我们必须用htcacheclean
命令清理它。 该命令是我们安装的apache2-utils
包的一部分,如下所示:
apt-get install apache2-utils
之后,我们可以启动htcacheclean作为守护进程,如下所示:
htcacheclean -d30 -n -t -p /var/cache/apache2/mod_disk_cache -l 100M -i
这将清除我们的缓存目录每30分钟,并确保它不会超过100MB。 要了解有关htcacheclean的
更多信息,请查看
man htcacheclean
当然,您不想在每次重新启动服务器时手动启动htcacheclean
- 因此我们编辑/etc/rc.local
...
vi /etc/rc.local
...并在出口0
行之前添加以下行:
[...] /usr/sbin/htcacheclean -d30 -n -t -p /var/cache/apache2/mod_disk_cache -l 100M -i [...] |
每次启动服务器时,都会自动启动htcacheclean
。