插件窝 干货文章 nginx如何配置状态监控

nginx如何配置状态监控

Nginx 状态 监控 server 670    来源:    2025-04-21

Nginx 状态监控配置指南

Nginx 提供了内置的状态监控模块 ngx_http_stub_status_module,可以让你查看基本的服务器状态信息。以下是配置方法:

1. 启用状态监控模块

首先确保你的 Nginx 编译时包含了 --with-http_stub_status_module 选项。可以通过以下命令检查:

nginx -V 2>&1 | grep -o with-http_stub_status_module

如果有输出则表示已包含该模块。

2. 配置状态页面

在 Nginx 配置文件中添加以下内容(通常在 server 块中):

server {
    listen 80;
    server_name your.server.com;

    location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;    # 只允许本地访问
        allow 192.168.1.0/24; # 或者允许特定IP段
        deny all;          # 拒绝其他所有IP
        # auth_basic "Nginx Status";
        # auth_basic_user_file /etc/nginx/.htpasswd; # 可选:添加基础认证
    }
}

3. 重新加载配置

nginx -t && nginx -s reload

4. 访问状态页面

访问 http://your.server.com/nginx_status 将看到类似以下输出:

Active connections: 291 
server accepts handled requests
 16630948 16630948 31070465 
Reading: 6 Writing: 179 Waiting: 106 

各指标含义

  • Active connections: 当前活跃连接数
  • server accepts: 已接受的客户端连接总数
  • handled: 已处理的连接总数
  • requests: 客户端请求总数
  • Reading: Nginx 正在读取请求头的连接数
  • Writing: Nginx 正在向客户端写入响应的连接数
  • Waiting: 空闲客户端连接数

高级监控方案

如果需要更全面的监控,可以考虑:

  1. Prometheus + Grafana:

    • 使用 nginx-prometheus-exporter 将 Nginx 状态导出为 Prometheus 格式
    • 通过 Grafana 展示漂亮的监控面板
  2. Zabbix:

    • 使用 Zabbix 的 Nginx 模板进行监控
  3. ELK Stack:

    • 收集和分析 Nginx 访问日志和错误日志

安全注意事项

  • 务必限制状态页面的访问权限
  • 考虑使用 HTTPS 加密状态页面
  • 可以添加基础认证增加安全性

希望这些信息对你有所帮助!如需更详细的配置或有其他问题,请随时提问。