Nginx存根_状态:忽略自己的请求

Nginx存根_状态:忽略自己的请求,nginx,monitoring,Nginx,Monitoring,在Nginx中启用stub\u状态时,可以查询服务器的统计信息: location /stats { stub_status on; access_log off; allow 127.0.0.1; deny all; } 我对“处理的请求”指标感兴趣。问题在于,此度量包括为查询当前状态而发送的请求 有没有办法忽略报告数据中针对/stats的请求?正如您在中所看到的,计数器在创建新请求“对象”时正好递增。也就是说,甚至在解析任何请求头(包括URI)之前。所以答案

在Nginx中启用
stub\u状态时
,可以查询服务器的统计信息:

location /stats {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    deny all;
}
我对“处理的请求”指标感兴趣。问题在于,此度量包括为查询当前状态而发送的请求

有没有办法忽略报告数据中针对
/stats
的请求?

正如您在中所看到的,计数器在创建新请求“对象”时正好递增。也就是说,甚至在解析任何请求头(包括URI)之前。所以答案是否定的,不幸的是,没有办法告诉Nginx不要统计特定URI的请求

然而,有两种方法可以解决这个问题。不幸的是,它们都涉及到构建自己的Nginx副本:

  • 您可以直接修补Nginx,每次
    stub\u status
    指令生成输出时,都会减少请求内容。要做到这一点,您只需要在末尾包含

  • 另一个更合适的方法是引入您自己的模块,该模块的功能与此完全相同。下面是一个由这样一个模块快速组成的示例。有些令人惊讶,但创建简单的模块并不需要很强的C语言知识,因为Nginx提供了自己的框架,GitHub上也有数百个示例