1. 启用并配置核心缓存模块
首先安装并启用mod_cache(缓存核心模块)和mod_cache_disk(磁盘缓存模块),这是Apache缓存的基础。通过以下命令启用:
sudo yum install mod_cache mod_cache_disk # CentOS系统
sudo systemctl restart httpd
在配置文件(如/etc/httpd/conf/httpd.conf或站点配置文件)中添加磁盘缓存规则:
CacheEnable disk / # 对根路径启用磁盘缓存
CacheRoot "/var/cache/apache2/mod_cache_disk" # 缓存存储目录
CacheDirLevels 2 # 缓存目录层级(避免单目录文件过多)
CacheDirLength 1 # 每级目录名称长度(优化目录结构)
CacheDefaultExpire 3600 # 默认缓存过期时间(1小时)
CacheIgnoreHeaders Set-Cookie # 忽略Set-Cookie头(避免缓存敏感数据)
CacheIgnoreNoLastMod On # 忽略Last-Modified缺失的情况
2. 配置静态资源长期缓存
使用mod_expires模块为静态文件(图片、CSS、JS等)设置长期缓存,减少浏览器重复请求。在配置文件中添加:
ExpiresActive On # 开启过期头控制
ExpiresByType image/jpeg "access plus 1 month" # JPEG图片缓存1个月
ExpiresByType image/png "access plus 1 month" # PNG图片缓存1个月
ExpiresByType text/css "access plus 1 week" # CSS文件缓存1周
ExpiresByType application/javascript "access plus 1 week" # JS文件缓存1周
ExpiresByType text/html "access plus 1 hour" # HTML缓存1小时(动态内容可缩短)
同时配合mod_headers设置Cache-Control头,增强缓存控制:
"\.(jpg|jpeg|png|gif|css|js)$" >
Header set Cache-Control "public, max-age=31536000, immutable" # 公共缓存1年(immutable表示内容不变)
3. 启用传输压缩优化带宽
使用mod_deflate模块压缩HTML、CSS、JS等文本资源,减少传输数据量。在配置文件中添加:
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json
# 排除IE6等旧浏览器(可选)
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
4. 调整缓存参数优化性能
根据服务器磁盘空间和访问频率调整缓存参数:
- 缓存大小限制:通过
mod_cache_disk的CacheMaxSize(最大缓存大小,默认无限制)和CacheMinSize(最小缓存大小)控制:CacheMaxSize 104857600 # 最大100MB(根据磁盘空间调整) CacheMinSize 1048576 # 最小1MB CacheCleanInterval 3600 # 每小时清理一次过期缓存(单位:秒) - 忽略动态参数:使用
CacheIgnoreQuery忽略URL查询参数(如?v=1.0),避免相同内容因参数不同重复缓存:CacheIgnoreQuery On
5. 配置KeepAlive提升并发
启用KeepAlive减少TCP连接建立/关闭的开销,提升缓存命中率。在配置文件中添加:
KeepAlive On # 开启KeepAlive
MaxKeepAliveRequests 100 # 单个连接最大请求数(避免单个连接占用过久)
KeepAliveTimeout 5 # 连接保持时间(秒)
6. 监控与维护缓存
- 验证缓存生效:使用
curl -I命令查看响应头,确认包含Cache-Control、Expires等头信息:curl -I http://your_server_ip/static/image.jpg - 定期清理缓存:通过
apachectl命令清理过期缓存(无需重启):sudo apachectl cache-flush - 监控缓存命中率:通过
mod_status模块(需启用)查看缓存状态,或使用第三方工具(如New Relic)监控缓存性能。
7. 可选:使用第三方缓存层
对于高流量网站,可结合Nginx作为反向代理缓存层,进一步提升性能。安装Nginx后配置缓存:
http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
server {
location /static/ {
proxy_pass http://apache_backend; # 指向Apache服务器
proxy_cache my_cache;
proxy_cache_valid 200 302 1h; # 缓存200/302状态码1小时
proxy_cache_use_stale error timeout updating;
}
}
}
以上就是关于“CentOS Apache2缓存机制如何优化”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm