代码之家  ›  专栏  ›  技术社区  ›  Danilo Bargen

Nginx stub_status:忽略自己的请求

  •  2
  • Danilo Bargen  · 技术社区  · 9 年前

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

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

    我对“处理的请求”指标感兴趣。问题在于,此度量包括发送来查询当前状态的请求。

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

    1 回复  |  直到 9 年前
        1
  •  2
  •   Ivan Tsirulev    9 年前

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

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

    1. 你可以修补 stub status module Nginx直接,每次 stub_status 指令生成输出。为此,您只需要包括: this line 在…的结尾 this function .

    2. 另一个更合适的方法是引入自己的模块,该模块将完全执行相同的操作。这是一个快速制作的 example 这样的模块。这有点奇怪,但你不需要对C有很强的了解就可以创建简单的模块,因为Nginx提供了自己的框架,而且GitHub上有数百个示例。

    推荐文章