温馨提示×

怎样用linux排查nginx故障

小樊
58
2026-10-17 06:48:47
栏目: 智能运维

下面按排查思路给你一个 Linux 下排查 Nginx 故障的实用清单,从“最快定位”到“深入分析”。


一、先看 Nginx 是否正常运行

ps -ef | grep nginx

或

systemctl status nginx

✅ 正常应看到 master process 和 worker process
❌ 没运行:systemctl start nginx


二、看端口是否监听

ss -lntp | grep ':80\|:443'

或

netstat -lntp | grep nginx

常见问题:

  • 端口被占用(如 Apache)
  • 只监听了 127.0.0.1(配置文件问题)

三、查看 Nginx 错误日志(最重要)

tail -f /var/log/nginx/error.log

常见错误:

  • permission denied → 权限问题
  • address already in use → 端口冲突
  • no such file or directory → 路径错误
  • SSL_CTX → 证书问题

四、查看访问日志

tail -f /var/log/nginx/access.log

看:

  • 是否有请求进来
  • 返回状态码(4xx / 5xx)

例如:

GET /api HTTP/1.1" 502

五、测试 Nginx 配置是否正确

nginx -t

若有错误,会直接告诉你行号。

重新加载配置:

nginx -s reload

六、排查 502 / 504(后端问题)

502 Bad Gateway

通常是:

  • 后端服务没起
  • 反向代理地址写错

检查:

proxy_pass http://127.0.0.1:8080;

测试后端:

curl http://127.0.0.1:8080

504 Gateway Time-out

  • 后端响应太慢
  • proxy_read_timeout 太小

七、检查文件和目录权限

ls -l /var/www/html

Nginx 用户一般是:

  • www-data(Debian/Ubuntu)
  • nginx(CentOS)

修复权限示例:

chown -R www-data:www-data /var/www/html

八、防火墙 / SELinux

防火墙

iptables -L
# 或
ufw status

SELinux(CentOS)

getenforce

临时关闭测试:

setenforce 0

九、用 curl 本地测试

curl -I http://localhost

看返回头:

  • 200 OK
  • 301/302 跳转
  • 403 Forbidden

十、常见故障速查表

现象 可能原因
403 目录无权限 / index 文件缺失
404 root 路径错误
502 后端挂了
504 后端超时
空白页 PHP / 后端报错
无法访问 防火墙 / 端口未监听

如果你愿意,可以把:

  • 错误日志内容
  • nginx.conf 相关配置
  • 具体报错现象

发出来,我可以帮你精确分析。

0 踩