Debian Apache缓存机制主要通过模块化配置实现,核心模块包括mod_cache、mod_cache_disk和mod_expires,以下是详细说明:
安装模块
启用mod_cache和mod_cache_disk模块:
sudo a2enmod cache cache_disk expires
sudo systemctl restart apache2
配置缓存目录
在/etc/apache2/apache2.conf或虚拟主机配置文件中添加:
<IfModule mod_cache.c>
<IfModule mod_cache_disk.c>
CacheEnable disk / # 启用磁盘缓存,"/"表示缓存所有内容
CacheRoot "/var/cache/apache2/mod_cache_disk" # 缓存根目录
CacheDirLevels 2 # 缓存目录层级(避免单目录文件过多)
CacheDirLength 1 # 每层目录名长度
CacheIgnoreHeaders Set-Cookie # 忽略特定HTTP头
CacheDefaultExpire 3600 # 默认缓存过期时间(秒)
</IfModule>
</IfModule>
按需配置规则
<Location "/static/">
CacheEnable disk
CacheMaxExpire 86400 # 静态资源缓存1天
</Location>
<FilesMatch "\.(jpg|css|js)$">
CacheEnable disk
CacheIgnoreNoLastMod On # 忽略Last-Modified头
</FilesMatch>
启用过期头控制
通过mod_expires设置不同文件类型的缓存时间:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 week"
ExpiresByType image/jpeg "access plus 1 month"
</IfModule>
curl -I检查响应头中的Cache-Control和Expires字段:curl -I http://example.com/static/image.jpg
CacheDirLevels和CacheDirLength平衡缓存分布与查找效率。CacheIgnoreHeaders排除敏感请求头。sudo rm -rf /var/cache/apache2/mod_cache_disk/*
以上配置可有效利用Debian Apache的缓存机制,减少服务器负载并提升用户访问速度。