2017-01-11 67 views
0

当启用在Nginx的的stub_status,有关服务器的统计数据可以查询:Nginx的stub_status:忽略自己的请求

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

我感兴趣的度量“处理的请求”。问题是这个度量包含了发送查询当前状态的请求。

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

+0

@IvanTsirulev的感谢!如果你写这个答案,我可以接受:) –

回答

1

正如你可以在source code看到,计数器在此刻正是递增正在创建一个新的请求“对象”的时候。也就是说,即使在任何请求标头(包括URI)被解析之前。所以答案是否定的,不幸的是,没有办法告诉Nginx不要为特定的URI计数请求。

不过,也有解决问题的方法有两种。不幸的是,他们都涉及到建立Nginx的自己的副本:

  1. 你可以直接打补丁stub status module Nginx的,每次stub_status指令生成输出时间递减请求康特。要做到这一点,您只需要在this function的末尾包含this line

  2. 其他更合适的方法是引入自己的模块,会做完全一样的。这是一个快速制作的模块example。有些令人意外,但你并不需要的C强大的知识来创建简单的模块,Nginx的提供自己的框架,该框架也有可用在GitHub上数以百计的例子。