Nginx stub_status:忽略自己的请求



在Nginx中启用stub_status时,可以查询服务器的统计信息:

location /stats {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}

我对"处理的请求"度量很感兴趣。问题是,此度量包括为查询当前状态而发送的请求。

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

正如您在源代码中所看到的,计数器在创建新请求"对象"的那一刻正好递增。也就是说,甚至在解析包括URI在内的任何请求标头之前。所以答案是否定的,不幸的是,没有办法告诉Nginx不要计算对特定URI的请求。

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

  1. 您可以直接修补存根状态模块Nginx,在每次stub_status指令生成输出时递减请求conter。要做到这一点,你只需要在这个函数的末尾包括这一行。

  2. 另一种更合适的方法是引入您自己的模块,该模块也可以做同样的事情。下面是一个快速制作的模块示例。这有点令人惊讶,但你不需要对C有很强的了解就可以创建简单的模块,因为Nginx提供了自己的框架,GitHub上也有数百个例子。

最新更新