stub status 模块自 nginx 0.7.1 起内置,1.9.0+ 默认编译进主干但需 configure 显式启用 --with-http_stub_status_module,否则配置 stub_status 会报未知指令错误;该模块不支持动态加载,必须重新编译。

Stub Status 模块是 Nginx 的内置 HTTP 状态监控模块,从 1.9.0 版本起已默认编译进主干,但**是否实际启用取决于编译时是否显式指定参数**。如果你用的是源码编译安装,必须在 ./configure 阶段加入对应选项,否则即使配置了 stub_status on,Nginx 也会报 unknown directive "stub_status" 错误。
确认目标版本是否支持该模块
Stub Status 模块自 Nginx 0.7.1 起存在,所有现代稳定版(如 1.20.x、1.22.x、1.24.x、1.26.x)均兼容。无需额外下载模块代码——它就在 Nginx 源码树的 src/http/modules/ngx_http_stub_status_module.c 中。你只需确保 configure 时带上启用开关即可。
编译时必须添加 --with-http_stub_status_module
在解压 Nginx 源码后,执行 ./configure 时,把该参数和其他常用模块一起写入(顺序无关):
-
--with-http_stub_status_module:这是唯一必需项,不可省略或拼错 - 典型完整示例(含基础安全与功能模块):
./configure \<br> --prefix=/usr/local/nginx \<br> --user=nginx \<br> --group=nginx \<br> --with-http_ssl_module \<br> --with-http_gzip_static_module \<br> --with-http_stub_status_module
- 运行
make && sudo make install完成安装
验证模块是否成功编译进二进制
安装完成后,立即检查:
- 执行
/usr/local/nginx/sbin/nginx -V 2>&1 | grep -o with-http_stub_status_module - 如果有输出(即显示该字符串),说明模块已内建成功
- 若无输出,说明 configure 阶段漏掉了参数,需重新编译——该模块不支持动态加载,无法通过
load_module补救
配置 location 启用状态页(编译成功后才有效)
模块就绪后,在任一 server 块中添加安全的 location:
- 只允许本地或内网访问,例如:
location /nginx-status {<br> stub_status on;<br> access_log off;<br> allow 127.0.0.1;<br> allow 10.0.0.0/8;<br> deny all;<br> } - 保存后运行
nginx -t && nginx -s reload - 用
curl http://127.0.0.1/nginx-status测试返回是否为类似:Active connections: 3<br> server accepts handled requests<br> 12345 12345 67890<br> Reading: 0 Writing: 1 Waiting: 2











