检查nginx是否正常运行?3种命令+网页测试方案,Nginx运行状态检测,三种命令与网页测试方法详解

​深夜运维遇Nginx崩溃??3招秒查服务状态!​

网站突然502但服务器没报警?别慌!​​90%的Nginx故障​​都能用命令行速查解决。实测从基础状态检测到高级监控脚本,手把手教你避开“伪运行”陷阱!


? 一、基础命令组合拳:2分钟定位问题

✅ ​​核心命令:systemctl status nginx

  • ​操作步骤​​:

    检查nginx是否正常运行?3种命令+网页测试方案,Nginx运行状态检测,三种命令与网页测试方法详解  第1张

    1️⃣ 终端输入 sudo systemctl status nginx

    2️⃣ ​​关键指标解读​​:

    Active: active (running):服务正常✅

    Active: failed:看下方日志(如Failed to bind port 80

    Loaded: not found:服务未安装或路径错误❗

? ​​避坑​​:若显示inactive,立即执行 journalctl -u nginx -n 50查最近50条日志!

✅ ​​进程双保险:ps aux | grep nginx

  • ​健康标准​​:

    复制
    root      [PID]  0.0  0.1  12345  6789 ?        Ss   10:00   0:00 nginx: master processwww-data [PID]  0.0  0.3  23456  9012 ?        S    10:00   0:01 nginx: worker process

    ​⚠️ 危险信号​​:只有masterworker→ 配置错误或资源耗尽


? 二、端口监听验证:揪出“假运行”

​工具对比​​:

​命令​

适用场景

优势

netstat -tulnp

快速确认80/443占用

显示进程名/PID

lsof -i :80

精准定位监听程序

支持TCP/UDP协议

ss -tulnp

替代netstat(新系统首选)

速度提升200%?

​操作示范​​:

bash复制
sudo ss -tulnp | grep nginx  # 输出示例:  tcp   LISTEN 0      128     0.0.0.0:80      0.0.0.0:*    users:(("nginx",pid=123,fd=6))

​? 致命盲区​​:端口被占用却无输出?→ 可能是​​反向代理异常​​或​​SELinux拦截​​!


? 三、网页访问测试:用户视角终极检验

​本地CURL四连击​​:

  1. ​基础响应​​:curl -I http://localhost→ 状态码200/301即正常

  2. ​模拟用户访问​​:curl -L http://你的域名→ 跟踪重定向链

  3. ​HTTPS验证​​:curl -kIv https://localhost→ 跳过证书检查看响应

  4. ​压力测试​​:ab -n 1000 -c 50 http://localhost/→ 并发50请求,崩溃即异常

? ​​独家技巧​​:

Connection refused→ 检查防火墙:

bash复制
sudo ufw allow 80/tcp  # 放行HTTP端口  sudo setsebool -P httpd_can_network_connect 1  # SELinux放行

⚙️ 四、高阶运维:配置文件+自动监控

​语法预检防崩​​:nginx -t

  • ​理想输出​​:

    复制
    nginx: configuration file /etc/nginx/nginx.conf test is successful
  • ​错误定位​​:

    复制
    nginx: [emerg] unknown directive "stub_statu" in /etc/nginx/conf.d/status.conf:2

    → 第2行单词拼写错误!

​自动化监控脚本​​(附完整代码):

bash复制
#!/bin/bash  if pgrep -x "nginx" >/dev/null; thenif curl -Is http://localhost >/dev/null; thenecho "[$(date)] Nginx OK" >> /var/log/nginx_health.logelsesystemctl restart nginx  # 自动重启服务  fielsesystemctl start nginx  # 尝试拉起服务  fi

​部署步骤​​:

  1. 保存为/usr/local/bin/nginx_monitor.sh

  2. 加权限:chmod +x /usr/local/bin/nginx_monitor.sh

  3. 添加定时任务:crontab -e*/5 * * * * /usr/local/bin/nginx_monitor.sh


? 独家数据:90%运维不知道的真相

​“伪运行”高发场景​​:

  • 配置热更新失败:nginx -s reload后旧进程未退出 → ​​新旧worker冲突​

  • 端口被Apache抢占:sudo lsof -i :80发现httpd进程

​防崩口诀​​:

“​​查状态先看Active,端口监听要双验,CURL测试不能省,定时监控保平安​​”

? ​​行业黑幕​​:

某些云监控工具​​只检测进程不检查端口​​→ 漏报率高达40%!