最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 中 Virtual Host 如何配置状态页
时间:2026-09-03 18:48:49 编辑:袖梨 来源:一聚教程网
Nginx虚拟主机无法单独配置状态页,因stub_status模块提供的是全局进程级统计;可在任一server块中启用/status路径访问汇总数据,但所有虚拟主机返回相同指标,且需确保模块已编译启用并做好访问控制。
Nginx 中 Virtual Host(虚拟主机)本身不支持单独配置状态页,因为 ngx_http_stub_status_module 提供的状态页是全局服务器级的监控接口,不是按 server 块隔离的。也就是说,无论你定义多少个 server{}(即多少个虚拟主机),/status 或 /nginx_status 返回的都是整个 Nginx 进程的汇总统计,而非某个域名或站点的独立数据。
但你可以在某个虚拟主机的配置中启用并暴露状态页,只要注意以下几点:
✅ 状态页必须放在某个 server 块内,且路径需明确
比如你想让 www.cat.com 这个虚拟主机响应 /status 请求:
server {listen 80;server_name www.cat.com;root /var/www/cat;index index.html;location / {try_files $uri $uri/ =404;}location /status {stub_status on; # 启用状态模块access_log off;# 不记录访问日志allow 127.0.0.1;# 仅允许本地访问allow 192.168.1.0/24; # 或指定内网IP段deny all;# 拒绝其他所有IP}}
⚠️ 注意:stub_status on; 是旧语法(Nginx < 1.13.10),新版推荐写成 stub_status;(无参数)
✅ 确保模块已编译启用
状态页功能依赖 --with-http_stub_status_module 编译选项。若你用的是系统包(如 Ubuntu 的 apt install nginx),该模块通常默认启用;但如果是源码编译安装,需确认编译时加了该参数:
nginx -V 2>&1 | grep -o with-http_stub_status_module
没输出即未启用,需重新编译。
✅ 路径可自定义,但不能跨 server 共享“专属”状态
你可以在不同 server 块里都配 location /status,但它们指向的是同一个统计源。例如:
-
www.cat.com/status→ 显示全站连接数、请求数等 -
www.dog.com/status→ 显示完全相同的数据,不是 dog 站点独有
所以它不是“每个虚拟主机一个状态页”,而是“每个虚拟主机可以提供一个入口访问全局状态”。
✅ 安全建议(强烈推荐)
- 不要开放给公网(避免信息泄露和被滥用)
- 配合
auth_basic做基础认证(可选):
location /nginx_status {stub_status;auth_basic "Restricted";auth_basic_user_file /etc/nginx/.htpasswd;allow 127.0.0.1;deny all;}
生成密码文件示例:
printf "admin:$(openssl passwd -crypt 123456)n" > /etc/nginx/.htpasswd
不复杂但容易忽略。
相关文章
- 个人网店服装拍摄实用技巧 09-03
- 网上花店:便捷购花新选择 09-03
- SQL Server 2008数据库误删数据如何进行数据恢复实用指南 09-03
- 我的勇者火焰领主BOSS攻略 阵容站位推荐 09-03
- SQL Server 2008 R2安装配置做法图文教程实用指南 09-03
- TPLink TLWR745N 51~52 无线路由器作交换机使用操作流程 09-03