确认Apache已安装缓存模块
在大多数Linux系统中,Apache默认并未启用缓存模块。常见的缓存模块有mod_cache、mod_cache_disk和mod_cache_socache。首先要确认这些模块文件是否存在。进入Apache的modules目录,通常位于/usr/lib/apache2/modules/或/etc/httpd/modules/,查看是否有mod_cache.so、mod_cache_disk.so等文件。
启用缓存模块
使用命令行工具启用模块是最直接的方式。以Ubuntu或Debian系统为例,可以运行以下命令:
a2enmod cache
a2enmod cache_disk如果是CentOS、RHEL或Fedora系统,一般需要手动编辑配置文件。打开主配置文件httpd.conf或在/etc/httpd/conf.modules.d/目录下创建一个新文件,例如10-cache.conf,添加如下内容:
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so配置缓存规则
启用模块后,需要在虚拟主机或主配置中设置缓存策略。比如想对静态资源如图片、CSS和JS文件进行缓存,可以在<VirtualHost>段中添加:
<IfModule mod_cache.c>
CacheEnable disk http://
CacheRoot /var/cache/apache2/mod_cache_disk/
CacheDefaultExpire 3600
CacheMaxExpire 86400
CacheLastModifiedFactor 0.1
CacheIgnoreNoLastMod On
</IfModule>其中CacheRoot指定缓存文件的存储路径,需确保该目录存在并赋予Apache写权限:
sudo mkdir -p /var/cache/apache2/mod_cache_disk/
sudo chown www-data:www-data /var/cache/apache2/mod_cache_disk/验证配置并重启服务
修改完成后,先检查配置语法是否正确:
apache2ctl configtest如果返回Syntax OK,就可以重启Apache服务:
sudo systemctl restart apache2或者在CentOS系统中:
sudo systemctl restart httpd访问几个页面后,可以到CacheRoot目录查看是否生成了缓存文件。如果看到类似fxx命名的文件,说明缓存已生效。
注意事项
缓存模块不适用于动态内容频繁变化的网站,比如后台管理系统或实时数据展示页。错误地缓存登录后的页面可能导致用户看到别人的数据。建议只对静态资源启用缓存,并结合CacheIgnoreURLSessionIdentifiers等指令排除含会话参数的请求。