Nginx缓存清除方法(手把手教你轻松清理Nginx缓存)

简介: 本文来源https://www.vps5.cn/介绍Nginx缓存清除的常用方法,包括删除缓存文件、使用ngx_cache_purge模块及设置过期时间,帮助开发者高效管理缓存,提升网站性能。

在使用 Nginx 作为 Web 服务器或反向代理时,缓存机制能显著提升网站性能。但有时我们需要手动清除缓存,比如更新了网页内容却看不到变化。本文将详细讲解 Nginx缓存清除 的几种常用方法,即使是初学者也能轻松上手。

什么是 Nginx 缓存?

Nginx 可以通过proxy_cachefastcgi_cache等模块将后端响应(如 HTML 页面、图片等)临时存储在磁盘上。当用户再次请求相同内容时,Nginx 直接返回缓存,无需再次访问后端服务器,从而加快响应速度。

方法一:删除缓存文件(最直接)

Nginx 的缓存通常保存在配置中指定的目录里,例如/var/cache/nginx。你可以直接删除这些文件来清除缓存。

# 查看缓存路径(需查看 nginx.conf 配置)sudo grep -r "proxy_cache_path" /etc/nginx/# 假设缓存路径是 /var/cache/nginx/my_cache# 删除整个缓存目录(谨慎操作!)sudo rm -rf /var/cache/nginx/my_cache/*# 或者只删除特定 URL 对应的缓存(需知道缓存键)# 通常缓存文件名是 URL 的 MD5 值,可通过脚本匹配

方法二:使用第三方模块 ngx_cache_purge

这是更优雅的方式,允许通过 HTTP 请求清除指定 URL 的缓存。首先需要安装支持ngx_cache_purge模块的 Nginx(很多发行版默认不包含)。

1. 在 Nginx 配置中添加 purge location:

proxy_cache_path /var/cache/nginx/my_cache levels=1:2 keys_zone=my_cache:10m inactive=60m;server {    listen 80;    server_name example.com;    location / {        proxy_pass http://backend;        proxy_cache my_cache;        proxy_cache_valid 200 302 10m;        proxy_cache_valid 404 1m;    }    # 允许通过 /purge/ 清除缓存    location ~ /purge(/.*) {        allow 127.0.0.1;      # 仅允许本地        allow 192.168.1.0/24; # 或指定内网IP        deny all;        proxy_cache_purge my_cache $1$is_args$args;    }}

2. 重载 Nginx 配置:

sudo nginx -s reload

3. 清除缓存(例如清除https://example.com/page.html):

curl -X PURGE http://example.com/purge/page.html

方法三:设置缓存过期时间(预防性策略)

虽然这不是“清除”缓存,但合理设置proxy_cache_validCache-Control头可以减少手动清除的需求。例如:

location / {    proxy_pass http://backend;    proxy_cache my_cache;    proxy_cache_valid 200 5m;  # 成功响应5分钟后过期}

小贴士与注意事项

  • 清除缓存前,建议先备份重要数据。
  • 使用 ngx_cache_purge 时务必限制访问 IP,防止被恶意清空缓存。
  • 缓存键(cache key)由 proxy_cache_key 定义,默认包含 URI、host 等,清除时需匹配。
  • 若使用 CDN,还需清除 CDN 层缓存,Nginx 缓存只是其中一环。

掌握这些 Nginx缓存管理 技巧,你就能灵活应对内容更新带来的缓存问题。无论是开发测试还是线上运维,清除Nginx缓存 都将变得简单高效。希望这篇教程对你有所帮助!

来源:https://www.vps5.cn/

相关文章
|
2月前
|
缓存 前端开发 JavaScript
Nginx缓存头信息设置(手把手教你优化网站加载速度)
本文介绍如何通过配置Nginx的HTTP缓存头(如Cache-Control、Expires、ETag)来优化静态资源缓存,提升网站性能。涵盖基础设置、可变与不可变资源区分、验证方法及实用配置示例,帮助开发者实现高效浏览器缓存,加快页面加载,减轻服务器负担。
|
缓存 应用服务中间件 nginx
成功解决 Nginx更新静态资源无效 ,Nginx静态资源更新不及时,Nginx清除缓存
这篇文章讨论了在使用Nginx进行动静分离时遇到的静态资源更新不及时的问题。问题描述了在服务器上更新静态资源后,访问页面时页面没有显示更新的情况。文章提供了解决这个问题的方法,即清除浏览器缓存,并提供了相关参考文章链接。此外,还展示了问题复现的步骤和正常情况的预期结果。
成功解决 Nginx更新静态资源无效 ,Nginx静态资源更新不及时,Nginx清除缓存
|
JSON Java 数据格式
一文彻底搞懂 @RequestBody 和 @RequestParam 的区别(附实战示例)
本文深入解析Spring Boot中@RequestBody和@RequestParam的区别,通过实战示例详解两者在数据来源、格式、使用场景及验证处理上的差异,帮助开发者正确选择参数绑定方式,提升开发效率与系统安全性。
797 0
|
5月前
|
监控 Linux 网络安全
CentOS操作系统时间同步更新指南。
遵循以上指南将帮助您 在 CentOS 上成功 设置 和 维 技 时间 同 步 . 这不但能够提高日志记录精准 度 和计划任务执行效率,还能够提高整个网络环境 中所有设备之间 的 协作效率.
893 17
|
8月前
|
测试技术 数据处理 调度
Dataphin功能Tips系列(57)「预览」vs「运行」:离线集成的神奇按钮
在数据开发过程中,使用Dataphin处理离线集成任务时,可能遇到数据过滤和字段计算组件配置正确性的验证问题。通过「预览」功能,可快速验证处理逻辑而不影响目标表;对于需要调度的任务,担心资源占用和耗时超出预期时,可使用「运行」功能进行全流程测试,评估实际耗时与资源消耗。「预览」适合逻辑验证,「运行」用于真实环境模拟,两者结合助力高效开发与调试。
237 5
|
9月前
|
SQL 人工智能 数据可视化
16.1k star! 只需要DDL就能一键生成数据库关系图!开源神器ChartDB让你的数据结构"看得见"
ChartDB是一款开源的数据库可视化神器,通过一句智能查询就能自动生成专业的数据库关系图。无需安装客户端、不用暴露数据库密码,打开网页就能完成从数据建模到迁移的全流程操作,堪称开发者的"数据库透视镜"。
2080 67
java开启线程的四种方法
这篇文章介绍了Java中开启线程的四种方法,包括继承Thread类、实现Runnable接口、实现Callable接口和创建线程池,每种方法都提供了代码实现和测试结果。
java开启线程的四种方法
|
数据格式
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
本文介绍了在ElementUI和ElementPlus中使用`el-table`组件实现合并行功能的技巧,包括多列合并和单列合并的方法,并提供了相应的示例代码和运行效果。
10310 46
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
|
SQL 程序员 Linux
推荐几个不错的数据库设计工具
推荐几个不错的数据库设计工具
1329 11
|
10月前
|
SQL 关系型数据库 数据库连接