nginx缓存命中率统计(转)

2023-05-16

转自:http://www.libertyvps.com/thread-275-1-1.html

nginx提供了$upstream_cache_status这个变量来显示缓存的状态,我们可以在配置中添加一个http头来显示这一状态,达到类似squid的效果。

location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 180;
proxy_send_timeout 180;
proxy_read_timeout 180;
proxy_buffer_size 128k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_cache cache;
proxy_cache_valid 200 304 1h;
proxy_cache_valid 404 1m;
proxy_cache_key $uri$is_args$args;
add_header Nginx-Cache "$upstream_cache_status";
proxy_pass http://backend;
}


HTTP/1.1 200 OK
Date: Mon, 22 Apr 2013 02:10:02 GMT
Server: nginx
Content-Type: image/jpeg
Content-Length: 23560
Last-Modified: Thu, 18 Apr 2013 11:05:43 GMT
Nginx-Cache: HIT
Accept-Ranges: bytes
Vary: User-Agent

为了能够统计缓存的命中率,我们需要在日志中记录这一状态

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'"$upstream_cache_status"';

统计方法:用HIT的数量除以日志总量得出缓存命中率:

awk '{if($NF=="\"HIT\"") hit++} END {printf "%.2f%",hit/NR}' access.log
30.15%

$upstream_cache_status包含以下几种状态:
·MISS 未命中,请求被传送到后端
·HIT 缓存命中
·EXPIRED 缓存已经过期请求被传送到后端
·UPDATING 正在更新缓存,将使用旧的应答
·STALE 后端将得到过期的应答
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx缓存命中率统计(转) 的相关文章

随机推荐

  • 音视频学习之旅

    原文出处 致敬前辈 雷霄骅 Android 音视频从入门到提高 任务列表 1 在 Android 平台绘制一张图片 xff0c 使用至少 3 种不同的 API xff0c ImageView xff0c SurfaceView xff0c
  • 使用Prometheus监控API

    可以使用新的方案 拨测API接口 43 监控方案 一直学下去的博客 CSDN博客 写在最前面 我心里也打鼓 xff0c 是不是应该把这个文章写出来 xff0c 因为这个项目里面的代码不能拿来就用 xff0c 需要做修改 xff08 其实后端
  • CentOS 6.8下安装glibc-2.17

    简介 mysql使用压缩包在CentOS 6 8 的系统上安装是会出现 xff0c glibc 2 17 not found的错误 xff0c 需要安装新版本的glibc 步骤如下 wget https ftp gnu org gnu gl
  • CentOS安装远程桌面(XRDP)

    背景 现在大部分服务端应用都是运行在Linux上的 xff0c 所以使用Linux操作系统来开发应用会方便很多 用Mac的用户请自动跳过 准环境 主机 一台 操作系统 CentOS 7 6 安装步骤 安装软件并启动 yum groupins
  • 自定义prometheus-operator中容器的参数

    简介 prometheus opertator 方便了我们在Kubernetes里面部署prometheus集群 xff0c 但是有一些底层的配置也被掩盖了 我遇到的问题就是配置文件的实时生效 xff0c 要等3分钟才可以 于是去翻了一下C
  • Gitlab全量迁移

    背景 公司研发使用的Gitlab由于服务器下架需要迁移到新的Gitlab服务器上 Gitlab官方推荐了先备份然后再恢复的方法 个人觉得这个方案不是很友好 xff0c 故采用官方的另外一种方法 xff0c 百度后发现这个方法还没有人记录 x
  • Swift使用极光推送JPush的Demo

    JPushDemo github项目地址 需要导入JPush框架 xff0c 可以使用cocoapod导入 xff0c 也可以手动导入 环境配置 配置环境可以参考极光推送的官方文档 xff1a iOS 证书设置指南 iOS SDK 集成指南
  • 拨测API接口+监控方案

    简介 在业务运维场景中 xff0c 需要对核心的API接口进行拨测 而各个接口需要传递的参数或者接口之间的依赖是比较复杂的 xff0c 通常接口之间都是通过链式请求来完成一个业务场景 常见的就是先登录 xff0c 拿到token以后 xff
  • KVM常用命令集合

    背景 曙光的一台物理服务器6240通过KVM进行虚拟化 xff0c 创建多台虚机 记录一下整个过程中常用的命令 物理服务器信息如下 操作系统 Kylin Linux Advanced Server release V10 span clas
  • 通过cfssl自签证书https证书

    背景 公司内部自建Web服务 xff0c 通过自签CA xff0c 然后签发https证书 工具地址 GitHub cloudflare cfssl CFSSL Cloudflare 39 s PKI and TLS toolkit 使用步
  • vSphere Web Client 6.5 如何上传ISO文件

    vSphere Web Client 6 5 如何上传ISO文件 xff1f 1 xff0c 先开启SSH功能 WEB登陆管理端 xff0c 选中一台主机 xff0c 配置 xff0d 安全配置文件 xff0d 服务编辑 xff0d SSH
  • linux中sed在指定字符前后添加内容

    假设文档内容如下 xff1a 1 2 3 4 5 root 64 localhost cat tmp input txt null 000011112222 test 要求 xff1a 在1111之前添加AAA 方法如下 xff1a sed
  • 解决 - Prometheus 监控Kubelet Metrics 报错"server returned HTTP status 403 Forbidden"

    简介 使用prometheus监控kubelet的时候 xff0c 报如下403的错误 xff1a 或者报401的错误 该问题的原因是webhook的授权地址使用127 0 0 1 所以其它IP发起的请求都会被拒绝 将该地址改为0 0 0
  • 为什么每次进入命令都要重新source /etc/profile 才能生效?

    span style color 999988 编辑JDK8 span span style color 0086b3 export span JAVA HOME 61 span style color dd1144 34 usr java
  • MySQL配置文件my.ini的一般设置

    mysqld 设置3306端口 port 61 3306 设置mysql的安装目录 basedir 61 D Software Package mysql 8 0 12 winx64 mysql 8 0 12 winx64 设置mysql数
  • Linux shell脚本编程时bad substitution解决办法

    首先 xff0c 我们要理解bad substitution的字面意思 xff0c 它的字面意思是 替换错误 的意思 这种错误的原因呢 xff0c 通常是我们编写脚本时 和 xff08 xff09 错误使用导致的 比如应该用 xff08 x
  • Vue中的watch 和computed 属性

    之前写过一篇关于computed计算属性的文章 xff0c 详见这里 computed 内的function只执行一次 xff0c 仅当function内涉及到Vue实例绑定的data的值的改变 xff0c function才会从新执行 x
  • Swift使用XMPPFramework做IM即时通信的Demo

    上一篇文章处理了文本中表情的替换 xff0c 现在来完成消息的发送功能吧 xff08 貌似前后并没有逻辑关系哈 xff09 首先为了测试 xff0c 我们需要下载spark工具 xff0c 它可以连接openfire搭建的后台来完成即时通信
  • P1591 阶乘数码

    题目描述 求n 中某个数码出现的次数 输入格式 第一行为 t t 10 xff0c 表示数据组数 接下来 t 行 xff0c 每行一个正整数n n 1000 和数码 a 输出格式 对于每组数据 xff0c 输出一个整数 xff0c 表示 n
  • nginx缓存命中率统计(转)

    转自 xff1a http www libertyvps com thread 275 1 1 html nginx提供了 upstream cache status这个变量来显示缓存的状态 xff0c 我们可以在配置中添加一个http头来