宝塔面板Nginx缓存清理全攻略:三步解决网站更新不生效

宝塔面板Nginx缓存清理全攻略:三步解决网站更新不生效

很多站长在修改CSS、JS或图片后,刷新浏览器却还是旧版本,这种问题十有八九是Nginx缓存没清干净。
宝塔面板集成的Nginx默认开启了静态文件缓存(通过add_header Cache-Controlexpires指令),如果你不清楚怎么清理,会非常头疼。
下面我用零基础也能看懂的方式,教你彻底清理Nginx缓存。

清理前的准备工作

先确认你的宝塔面板和网站基本信息:

  1. 登录宝塔后台,进入“网站”页面,找到需要清理缓存的站点。
  2. 点击站点右侧的“设置”,在侧边栏选择“配置文件”,查看Nginx配置中是否包含类似expires 30d;add_header Cache-Control "public, max-age=86400";的指令。如果存在,说明有缓存策略。
  3. 另外,如果你使用了第三方缓存插件(如WP Fastest Cache、Redis),也需要一并清理,但本文只聚焦Nginx原生缓存。

一步步清理Nginx缓存

第一步:手动删除缓存目录

宝塔面板的Nginx默认会将缓存文件存储在临时目录,通常路径为:/tmp/nginx_cache/www/server/nginx/cache
你可以通过SSH连接服务器执行以下命令:

# 进入缓存目录
cd /tmp/nginx_cache
# 删除所有缓存文件
rm -rf *
# 或者针对指定网站(如果使用了proxy_cache_path)则按路径删除

如果你不习惯SSH,也可以直接在宝塔面板的“文件”管理中,找到/tmp/nginx_cache文件夹,全选删除。
注意:如果缓存目录为空或不存在,说明未启用文件缓存,请往下看第二、三步。

第二步:通过配置强制禁用指定URL缓存

对于更新频繁的接口或页面,最好直接关闭缓存。
进入站点“配置文件”,在location ~ \.(js|css|png|jpg|gif)$块内添加以下内容:

location ~ \.(js|css|png|jpg|gif)$ {
    expires -1;
    add_header Cache-Control "no-cache, no-store, must-revalidate";
    proxy_no_cache 1;
    proxy_cache_bypass 1;
}

保存后,在宝塔面板顶部点击“重载配置”或“重启Nginx”使其生效。
注意:此操作会彻底关闭静态文件的缓存,可能影响网页加载速度,建议只对需要实时更新的文件使用。

第三步(可选):设置Nginx缓存过期策略

如果你不想完全关闭缓存,可以调整缓存时间。
在配置文件中找到expires指令,修改为更短的时间,例如expires 1h;,然后重载Nginx。
这样1小时后自动清理旧缓存,用户就能看到新版本。

频繁遇到的坑与解决

问题1:清理缓存后浏览器还是旧内容?

可能是浏览器自身缓存(强缓存)没清。
请用快捷键Ctrl+Shift+Delete清除浏览器缓存,或使用无痕模式访问。
另外,如果使用了CDN(如Cloudflare),还需要在CDN后台刷新缓存。

问题2:删除了Nginx缓存目录但文件自动重建?

说明你只删除了临时文件,但Nginx进程可能还在使用内存中的缓存。
建议重启Nginx:在宝塔面板左侧“软件商店”中找到Nginx,点击“重启”;
或者执行命令systemctl restart nginx

问题3:用了proxy_cache_bypass但部分文件仍有缓存?

检查proxy_cache_path指令是否正确指向了缓存目录,以及是否在location块外定义了缓存区域。
示例配置:

proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;

确保proxy_cache my_cache;proxy_cache_bypass $http_cache_control;配合使用。

如何确认缓存已清除

最后一步,验证是否生效。
在本地电脑打开浏览器开发者工具(F12),切换到“网络”选项卡,刷新网站页面,点击任意静态资源(如CSS文件)。
查看响应头中的Cache-Control字段:如果是no-cachemax-age=0,说明缓存已成功清理或关闭。
如果仍有max-age=86400,说明缓存策略仍生效,请重复前面步骤。

对于服务器端,你也可以执行以下命令查看缓存目录大小:

du -sh /tmp/nginx_cache/*

如果目录为空或大小极小,表示清理成功。

掌握了宝塔面板Nginx缓存清理的方法,以后网站更新后就不用反复发公告让用户清缓存了。
如果你在操作中遇到其他问题,欢迎在评论区留言,我会一起解答。

分享到:
上一篇
Docker部署k6,一条命令跑起性能测试环境
下一篇
WordPress网站链接提交收录实战
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意