发布于2026-06-02 阅读(0)
扫一扫,手机访问
在Nginx中配置缓存,算是提升网站性能最直接的手段之一——既能减轻后端压力,也能让用户响应快上不少。不过很多人一上来就照着网上的配置抄,结果要么缓存没生效,要么把动态内容也给缓存了。下面分享一套经过实践检验的基础配置思路,从安装模块到最终验证,一步不落。

确认环境:Nginx及相关模块
首先要确保Nginx已经安装,并且启用了必要的缓存模块。关键的两个模块是ngx_cache和ngx_cache_purge(后者用于手动清除缓存)。如果编译时没带,可能需要重新编译或通过包管理器补齐。
定义缓存路径与缓存区
在Nginx的主配置文件(/etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf)的 http 块内,添加如下配置段:
http {
# 缓存路径和大小
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
server {
listen 80;
server_name example.com;
location / {
# 启用缓存
proxy_cache my_cache;
proxy_pass http://backend_server;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
# 缓存控制头
add_header X-Proxy-Cache $upstream_cache_status;
# 缓存清除
location ~ /purge(/.*) {
allow 127.0.0.1;
deny all;
proxy_cache_purge my_cache $scheme://$host$request_uri;
}
}
}
}
解释几个关键参数:
proxy_cache_path:指定缓存在磁盘上的存储位置、目录层级结构(levels=1:2表示二级目录)、共享内存区名称及大小(keys_zone=my_cache:10m)、最大缓存容量(max_size=1g)、失效时间(inactive=60m)以及是否使用临时路径(建议关闭)。proxy_cache:在location中引用上面定义的缓存区。proxy_cache_valid:针对不同HTTP状态码设置缓存时长。例如200和302响应缓存10分钟,404只缓存1分钟。add_header:在响应头中增加 X-Proxy-Cache 字段,方便调试时查看缓存命中状态(HIT/MISS)。location ~ /purge:定义一个只允许本地访问的清除接口,用于手动清理指定URL的缓存。细化缓存控制头
根据业务需要,可以进一步调整缓存时间策略。比如对经常变化的资源缩短缓存,对静态资源延长缓存。示例:
proxy_cache_valid 200 301 30m;
proxy_cache_valid 200 302 10m;
proxy_cache_valid any 1m;
这里对301重定向缓存30分钟,302缓存10分钟,其余状态码只缓存1分钟。实际生产中可根据后端接口的稳定性灵活调整。
重启Nginx使配置生效
保存配置后,执行重载或重启命令:
sudo systemctl restart nginx
注意:如果只是修改了缓存路径或缓存区设置,建议先执行 nginx -t 测试配置文件语法是否正确。
验证缓存是否生效
用 curl 访问站点并查看响应头:
curl -I http://example.com
重点关注 X-Proxy-Cache 字段。如果返回 MISS,说明第一次访问未命中;再次访问同一个URL,应该变成 HIT。如果一直都是 MISS,需要检查 proxy_cache_valid 设置的缓存条件是否满足,或者后端是否返回了禁止缓存的响应头(如 Cache-Control: no-cache)。
以上是Nginx缓存的基础配置流程。实际部署中可能还会涉及缓存键自定义、条件缓存、缓存锁定等进阶话题,但先把这套基础跑通,后续优化才有抓手。只要配置得当,缓存对性能的提升立竿见影。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8