Nginx提供了多种方式来监控服务器状态,以下是一些常用的方法:
ngx_http_stub_status_module模块这个模块可以提供关于Nginx服务器的实时统计信息。
编译Nginx时启用该模块:
./configure --with-http_stub_status_module
make
make install
配置Nginx:
在Nginx配置文件(通常是/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf)中添加以下内容:
server {
    listen 80;
    server_name localhost;
    location /nginx_status {
        stub_status on;
        access_log off;
        allow 127.0.0.1;  # 只允许本地访问
        deny all;         # 拒绝其他所有IP
    }
}
重启Nginx:
sudo systemctl restart nginx
访问状态页面:
打开浏览器,访问http://your_server_ip/nginx_status,你将看到类似以下的输出:
Active connections: 1 
server accepts handled requests
12345 12345 12345 
Reading: 0 Writing: 1 Waiting: 0 
有许多第三方工具可以帮助你更全面地监控Nginx服务器的状态,例如Prometheus、Grafana、Zabbix等。
安装Prometheus: 下载并解压Prometheus,然后启动它。
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
tar xvfz prometheus-2.30.3.linux-amd64.tar.gz
cd prometheus-2.30.3.linux-amd64
./prometheus --config.file=prometheus.yml
配置Prometheus抓取Nginx指标:
编辑prometheus.yml文件,添加Nginx的抓取配置:
scrape_configs:
  - job_name: 'nginx'
    static_configs:
      - targets: ['localhost:9113']
安装Node Exporter(如果需要): Node Exporter用于暴露系统级别的指标。
安装Grafana: 下载并解压Grafana,然后启动它。
wget https://dl.grafana.com/oss/release/grafana-8.2.0.linux-amd64.tar.gz
tar xvfz grafana-8.2.0.linux-amd64.tar.gz
cd grafana-8.2.0
./bin/grafana-server
配置Grafana连接Prometheus:
打开浏览器,访问http://your_server_ip:3000,登录后添加Prometheus数据源,并创建仪表盘来展示Nginx指标。
如果你使用的是Nginx Plus,它提供了丰富的API来获取详细的性能和健康状态信息。
curl http://your_nginx_plus_server_ip/api/v1/servers
通过分析Nginx的访问日志和错误日志,也可以了解服务器的运行状态和潜在问题。
# 查看访问日志
tail -f /var/log/nginx/access.log
# 查看错误日志
tail -f /var/log/nginx/error.log
通过这些方法,你可以全面监控Nginx服务器的状态,确保其稳定运行。