Nginx stub_status: 忽略自己的请求
Nginx stub_status: Ignore own requests
在Nginx中启用stub_status
时,可以查询服务器的统计信息:
location /stats {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
我对 "requests handled" 指标感兴趣。问题在于此指标包括发送的查询当前状态的请求。
有没有办法忽略报告数据中针对 /stats
的请求?
如您在 source code 中所见,计数器在创建新请求 "object" 时恰好递增。也就是说,甚至在解析任何请求 header 之前,包括 URI。所以答案是否定的,不幸的是没有办法告诉 Nginx 不计算特定 URI 的请求。
不过,有两种方法可以解决这个问题。不幸的是,它们都涉及构建您自己的 Nginx 副本:
您可以修补 stub status module Nginx directly, decrementing request conter every time the stub_status
directive generates the output. To do this you only need to include this line at the end of this function。
另一种更合适的方法是引入您自己的模块,其功能完全相同。这是一个快速制作的 example 这样的模块。有点令人惊讶,但您不需要精通 C 来创建简单的模块,因为 Nginx 为此提供了自己的框架,并且 GitHub.
[=25= 上还有数百个示例可用]
在Nginx中启用stub_status
时,可以查询服务器的统计信息:
location /stats {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
我对 "requests handled" 指标感兴趣。问题在于此指标包括发送的查询当前状态的请求。
有没有办法忽略报告数据中针对 /stats
的请求?
如您在 source code 中所见,计数器在创建新请求 "object" 时恰好递增。也就是说,甚至在解析任何请求 header 之前,包括 URI。所以答案是否定的,不幸的是没有办法告诉 Nginx 不计算特定 URI 的请求。
不过,有两种方法可以解决这个问题。不幸的是,它们都涉及构建您自己的 Nginx 副本:
您可以修补 stub status module Nginx directly, decrementing request conter every time the
stub_status
directive generates the output. To do this you only need to include this line at the end of this function。另一种更合适的方法是引入您自己的模块,其功能完全相同。这是一个快速制作的 example 这样的模块。有点令人惊讶,但您不需要精通 C 来创建简单的模块,因为 Nginx 为此提供了自己的框架,并且 GitHub.
[=25= 上还有数百个示例可用]