在使用 Nginx 部署多个网站(即配置了多个虚拟主机)时,经常会遇到页面更新后用户看到的仍是旧内容的问题。这通常是因为 Nginx 启用了缓存机制。本文将手把手教你如何清除 Nginx 虚拟主机缓存,即使是刚接触服务器运维的小白也能轻松上手。
当你更新了网站内容(如 HTML、CSS、JS 或图片),但访问者仍看到旧版本,很可能是因为 Nginx 对静态资源做了缓存。尤其在配置了proxy_cache或使用了第三方缓存模块(如 ngx_cache_purge)时,缓存会更持久。
首先,检查你的虚拟主机配置文件(通常位于 /etc/nginx/sites-available/ 或 /etc/nginx/conf.d/ 目录下)。打开对应站点的配置文件,查找是否有如下关键词:
# 查找是否包含以下配置proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;server { ... location / { proxy_cache my_cache; ... }} 如果看到类似配置,说明该虚拟主机启用了缓存功能。
Nginx 的缓存通常存储在磁盘上的某个目录中(例如 /var/cache/nginx)。你可以直接删除该目录下的所有文件来清除缓存。
# 查看缓存目录(根据你的 proxy_cache_path 配置)sudo ls -l /var/cache/nginx# 清除所有缓存文件sudo rm -rf /var/cache/nginx/* ⚠️ 注意:执行前请确认路径正确,避免误删系统文件。
如果你希望按需清除特定 URL 的缓存(而不是全部清除),可以安装 ngx_cache_purge 模块。很多发行版(如 Ubuntu)的 Nginx-full 包已内置此模块。
1. 在虚拟主机配置中添加一个专门用于清除缓存的 location 块:
location ~ /purge(/.*) { allow 127.0.0.1; # 仅允许本地访问 allow your.ip.address; # 可添加你的公网IP deny all; proxy_cache_purge my_cache "$scheme://$host$1";} 2. 重载 Nginx 配置:
sudo nginx -t && sudo systemctl reload nginx 3. 清除指定页面缓存(例如清除首页):
# 在浏览器或 curl 中访问http://your-domain.com/purge/ 这样就能精准清除某一页的缓存,而不会影响其他页面。
虽然重启 Nginx 有时能间接清空部分内存缓存,但它不会清除磁盘缓存。因此,这不是一个可靠的清除缓存方法,仅建议在调试时临时使用。
sudo systemctl reload nginx # 平滑重载配置# 或sudo systemctl restart nginx # 完全重启(会影响在线服务) 掌握 Nginx缓存清除、虚拟主机缓存、清除Nginx缓存 和 网站缓存管理 这四项技能,不仅能提升网站更新效率,还能优化用户体验和搜索引擎抓取效果。
ngx_cache_purge 实现精细化控制。X-Cache 字段。通过以上步骤,你已经掌握了清除 Nginx 虚拟主机缓存的核心方法。快去试试吧!
本文由主机测评网于2025-11-30发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025111473.html