Nginx运行状态和日志可通过核心命令直接查看:用systemctl status nginx或ps aux | grep nginx确认进程,nginx -t验证配置;access.log和error.log默认位于/var/log/nginx/,支持tail -f实时追踪;启用stub_status模块可获取连接与请求统计。

直接查看 Nginx 运行状态和日志,不需要重启服务或安装额外工具,关键在于掌握几个核心命令和配置位置。
确认 Nginx 是否正在运行
最快速的方式是检查主进程是否存在:
- systemctl status nginx(适用于使用 systemd 的系统,如 CentOS 7+/Ubuntu 16.04+)
- ps aux | grep nginx 查看 master 和 worker 进程是否在运行
- nginx -t 验证配置语法是否正确,避免因配置错误导致假性“未运行”
查看实时访问日志(access.log)
默认路径通常为 /var/log/nginx/access.log,可用以下方式动态观察:
- tail -f /var/log/nginx/access.log 实时追踪新请求(按 Ctrl+C 退出)
- tail -n 50 /var/log/nginx/access.log 查看最近 50 行
- 若日志被轮转(如 access.log.1、access.log.gz),可用 zcat /var/log/nginx/access.log.1.gz | tail -20 查看压缩日志
查看错误日志(error.log)定位问题
错误日志路径一般为 /var/log/nginx/error.log,它记录启动失败、配置异常、权限错误等关键信息:
- tail -f /var/log/nginx/error.log 监控启动或重载后的报错
- grep "error\|crit\|alert" /var/log/nginx/error.log 快速筛选严重级别日志
- 注意日志级别:默认为 error,如需更详细信息,可在 nginx.conf 的 http 或 server 块中临时设为 debug(仅调试用,生产环境慎用)
启用并访问 Nginx 内置状态页(需模块支持)
Nginx 官方开源版不自带状态页,但可通过 ngx_http_stub_status_module(已默认编译进多数发行版包)启用:
- 在某个 server 块中添加:
location /nginx_status {
stub_status on;
allow 127.0.0.1;
deny all;
}
然后执行 nginx -s reload - 本地访问 curl http://127.0.0.1/nginx_status,返回类似:
Active connections: 3
server accepts handled requests
123 123 456
Reading: 0 Writing: 1 Waiting: 2
其中 “Waiting” 表示 keep-alive 空闲连接数










