讲师中心 微信公众号

工具推荐

视频效率加速
立刻MV
立刻MV

低成本歌曲 MV、视频生成

updream

一键生成高质量推广成片

Seko
Seko

AI短剧一键生成成片

Laper
Laper

剧本策划到成片协作

Linux 中 Nginx 怎么监控缓存失效后的回源请求流量

小芳同学_9262

小芳同学_9262

发布时间:2026-11-12 08:31:22

|

775人浏览过

|

来源于php中文网

原创

在 linux 中监控 nginx 缓存失效后的回源请求流量,核心做法是配置 nginx 的 log_format 以记录缓存状态变量 $upstream_cache_status,并通过日志分析工具(如 awk、grep 或 elk)筛选出状态为 miss 的请求。当缓存未命中时,nginx 会向后端服务器发起回源请求,此时 $upstream_cache_status 的值通常为 miss。通过统计这些 miss 记录的频率和来源 ip,即可量化回源流量。

Linux 中 Nginx 怎么监控缓存失效后的回源请求流量

Nginx 如何配置日志格式以捕获缓存状态

要获取缓存状态,必须在 Nginx 配置文件(通常是 nginx.conf 或站点配置)中定义包含 $upstream_cache_status 变量的日志格式。默认日志格式不包含此字段,因此需要自定义。配置完成后,Nginx 会在每次处理请求时,根据缓存是否命中、是否过期或是否被主动清除来更新该变量的值。对于回源请求,该值为 MISS;若命中则为 HIT;若因强制刷新等策略导致失效后重新获取,也为 MISS。正确配置日志格式是监控的基础。

Linux 中 Nginx 怎么监控缓存失效后的回源请求流量

server {
    listen 80;
    server_name example.com;

    # 定义包含缓存状态的日志格式
    log_format cache_log '$remote_addr - $remote_user [$time_local] '
                         '"$request" $status $body_bytes_sent '
                         '"$http_referer" "$http_user_agent" '
                         'cache_status=$upstream_cache_status';

    access_log /var/log/nginx/cache_access.log cache_log;

    location / {
        proxy_pass http://backend;
        # 启用缓存
        proxy_cache my_cache;
        # 设置缓存键
        proxy_cache_key $scheme$request_method$host$request_uri;
    }
}

上述配置将日志输出到 /var/log/nginx/cache_access.log,每行末尾附加 cache_status=MISS 或 cache_status=HIT。重启 Nginx 后,新的访问日志将包含所需信息。可通过 tail -f /var/log/nginx/cache_access.log 实时观察。

CMIC Skill Scanner (BCLinux 21 / 低版本 glibc Linux x64)
CMIC Skill Scanner (BCLinux 21 / 低版本 glibc Linux x64)

使用内置 Rust 引擎审计待安装的 skill 包或归档,可选桥接外部扫描器。

下载

如何使用命令行工具统计回源流量

配置好日志后,可使用 Linux 命令行工具对日志文件进行统计分析。最常用的方法是结合 grep 和 awk 提取状态为 MISS 的行,并进一步统计请求数量、带宽或来源 IP。例如,统计过去一小时内所有回源请求的数量,可以使用 awk 解析时间戳和状态字段。这种方法无需额外安装软件,适合快速排查和实时监控。

Linux 中 Nginx 怎么监控缓存失效后的回源请求流量

# 统计最近1小时内的MISS请求总数
awk -v now=$(date +%s) '
    $4 ~ /\[/ {
        # 提取时间戳部分,假设格式为 [DD/Mon/YYYY:HH:MM:SS +ZZZZ]
        gsub(/\[|]/, "", $4);
        cmd = "date -d \"" $4 "\" +%s";
        cmd | getline ts;
        close(cmd);
        if (now - ts <= 3600 && $NF == "cache_status=MISS") {
            count++;
        }
    }
    END { print "Total MISS in last hour:", count+0; }' /var/log/nginx/cache_access.log

# 统计每个IP的回源请求次数
awk '$NF == "cache_status=MISS" { ip[$1]++ } END { for (i in ip) print ip[i], i }' /var/log/nginx/cache_access.log | sort -nr

第一段命令计算最近一小时的 MISS 请求数,第二段命令按 IP 统计回源频次。结果可直接用于判断是否存在异常回源(如某个 IP 高频触发缓存失效)。若需更复杂的分析,可将日志导入 Prometheus + Grafana 或 ELK Stack,通过正则匹配 cache_status=MISS 构建指标面板。

缓存失效后回源请求的具体触发条件有哪些

回源请求(即 $upstream_cache_status 为 MISS)不仅发生在首次访问时,还由多种缓存失效条件触发。常见条件包括:缓存条目 TTL(生存时间)到期、后端返回 Cache-Control: no-cache 或 no-store、客户端发送 Cache-Control: no-cache 请求头、使用 proxy_cache_purge 模块主动清除缓存、或缓存空间不足导致 LRU 淘汰。在这些情况下,Nginx 无法提供缓存副本,必须向后端发起新请求。理解这些条件有助于优化缓存策略,减少不必要的回源压力。

热门AI工具

更多
PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

423

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

4187

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

7065

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

601

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1516

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3998

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

122

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

577

2026.01.13

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

80

2026.11.06

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn