查看nginx cache命中率

一、在http header上增加命中显示

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

而通过curl或浏览器查看到的header如下:

$upstream_cache_status包含以下几种状态:

·MISS 未命中,请求被传送到后端
·HIT 缓存命中
·EXPIRED 缓存已经过期请求被传送到后端
·UPDATING 正在更新缓存,将使用旧的应答
·STALE 后端将得到过期的应答

二、nginx cache命中率统计

即然nginx为我们提供了$upstream_cache_status函数,自然可以将命中状态写入到日志中。具体可以如下定义日志格式:

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

了解了原理以后,也可以通过crontab脚本将每天的命中率统计到一个日志中,以备查看。

访脚本的内容为:

转自:http://www.361way.com/nginx-cache/2665.html