Nginx 怎么排查 Nginx 代理缓存命中率低下导致后端服务器压力过大的故障

舞夢輝影

舞夢輝影

2026-08-05

611人浏览

原创

缓存命中率低主因是请求未进入缓存池,而非后端性能差;需先通过x-cache-status确认hit/miss/bypass等状态,再检查proxy_cache_path权限、proxy_cache_valid状态码匹配、cache_key精简及bypass规则清理。

nginx 怎么排查 nginx 代理缓存命中率低下导致后端服务器压力过大的故障

缓存命中率低不是“没配缓存”,而是请求压根没进缓存池——多数问题出在缓存未真正生效,而非后端扛不住。排查要从请求是否落地缓存开始,而不是一上来就加机器或调后端。

看 X-Cache-Status 响应头确认真实命中状态

这是最直接的判断依据。在响应头中检查 X-Cache-Status 字段:

  • HIT:缓存命中,内容来自本地缓存
  • MISS:请求未命中,且未写入缓存(关键!说明缓存流程中断)
  • EXPIRED:缓存存在但已过期,会回源并刷新
  • BYPASS:被显式绕过(如含 Cookie、$arg_nocache=1 等)

用 curl 验证:curl -I https://your-domain/path,反复观察不同请求的返回值。如果大量是 MISS 或 BYPASS,说明缓存根本没启用成功,不是命中率问题,而是配置失效问题。

查 proxy_cache_path 是否就位且可写

缓存目录没建好、权限不对、参数错位,会导致所有请求静默 fallback 到后端:

Nginx
Nginx

在宝塔面板中轻松管理Nginx高性能Web服务器。提供可视化配置反向代理、负载均衡、SSL证书及HTTP缓存功能,一键优化高并发性能,助您高效搭建稳定、快速的网站运行环境。

下载
  • 确认 proxy_cache_path 写在 http 块顶层,不在 server 或 location 里
  • 手动创建目录并赋权:sudo mkdir -p /var/cache/nginx/my_cache && sudo chown nginx:nginx /var/cache/nginx/my_cache
  • 检查磁盘空间和 inodes:df -h /var/cache/nginxdf -i /var/cache/nginx
  • 验证 proxy_temp_path 是否与缓存路径同文件系统;否则写缓存失败,日志报 Permission deniedERR_CONTENT_LENGTH_MISMATCH

验 upstream 响应是否被缓存规则拒之门外

即使路径对、目录对,上游返回的内容也可能被 Nginx 主动跳过缓存:

  • curl -I 查真实状态码——常见陷阱是后端返回 201、206、304,但 proxy_cache_valid 只写了 200
  • 显式声明需缓存的状态码:proxy_cache_valid 200 201 206 301 302 404 10m;
  • 检查响应头是否含 Cache-Control: no-cachemax-age=0Set-Cookie;默认会被跳过,加 proxy_ignore_headers Cache-Control Expires Set-Cookie; 强制接管
  • 静态资源建议设长时效:proxy_cache_valid 200 24h;;动态接口用短时效+验证:proxy_cache_valid 200 300s;

审 cache_key 和 bypass 规则是否污染缓存键

同一个资源生成多个 key,等于缓存彻底失效:

  • 精简 proxy_cache_key:去掉干扰参数,例如从 "$scheme$host$uri$is_args$args" 改为 "$scheme$host$uri",避免 ?t=123456 类随机参数导致 key 不一致
  • 清理绕过条件:proxy_cache_bypass $arg_nocache $http_pragma $http_authorization;,再配合 proxy_ignore_headers Set-Cookie; 防止后端 Set-Cookie 触发 bypass
  • 若业务需区分用户(如登录态),就不该缓存;若只是公共内容,必须剥离用户标识字段

不复杂但容易忽略。真正卡住缓存的,往往不是策略多高深,而是目录没权限、状态码没覆盖、key 带了随机参数这些基础项。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1111

5

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

2133

13

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

2655

10

服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

355

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

618

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

1216

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

429

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

324

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

190

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习