一、影响缓存大小的核心因素
1. 业务流量与访问模式
2. 缓存内容类型
3. 服务器硬件性能
4. 数据更新频率
二、Nginx 缓存大小配置的核心参数
/static/
和 /api/
分开配置),避免互相挤压。proxy_cache_path
),但缓存元数据(如索引、过期时间)会占用内存,需为系统和其他服务预留足够内存。proxy_cache_path
指令定义缓存区域,关键参数包括:
proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
参数 | 说明 |
---|---|
levels |
缓存目录层级(如 levels=1:2 表示二级目录,减少单目录文件数) |
keys_zone |
内存索引区大小:存储缓存键(URL)和元数据,1MB 约存储 8000 个键 |
max_size |
磁盘缓存最大空间:建议设置为预计缓存数据量的 1.5~2 倍 |
inactive |
缓存未被访问的过期时间,超时后自动删除 |
use_temp_path |
是否使用临时路径中转,设为 off 可提高性能 |
du -sh /path/to/static
查看静态资源目录大小)。max_size
为资源总量的 1.5~3 倍(考虑缓存更新时的新旧数据共存)。max_size
可设为 10GB
(预留扩展空间)。stub_status
)查看缓存命中率:
stub_status on;
cache hits
:命中次数,理想命中率需超过 80%。cache misses
:未命中次数,若持续过高需扩大缓存空间或优化缓存策略。max_size
或延长缓存时间。# 静态资源缓存(大空间,长过期时间)
proxy_cache_path /cache/static levels=1:2 keys_zone=static_cache:50m max_size=50g inactive=7d;
# API 缓存(小空间,短过期时间)
proxy_cache_path /cache/api levels=1:2 keys_zone=api_cache:5m max_size=1g inactive=10m;
awk '{print $7}' access.log | sort | uniq -c | sort -nr
)找出高频 URL,针对性调整缓存策略。max_size
达到上限时自动删除旧数据,无需额外配置。Cache-Control
响应头,让浏览器直接缓存静态资源,减少服务器端缓存压力:
location /static/ {
expires 30d; # 浏览器缓存 30 天
add_header Cache-Control "public";
}
inactive
参数自动清理):
find /path/to/cache -type f -mtime +7 -delete # 删除 7 天未访问的缓存
问题现象 | 可能原因 | 解决方法 |
---|---|---|
缓存命中率低 | 空间不足或过期时间过短 | 增大 max_size 或延长 inactive |
磁盘空间占用过高 | max_size 设置过大或未及时淘汰 |
调整 max_size ,检查 inactive 配置 |
缓存数据未更新 | 未正确设置缓存键或刷新策略 | 使用 proxy_cache_key 包含动态参数(如 $arg_version ) |
文章链接: https://www.mfisp.com/36343.html
文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!
之前