温馨提示×

如何定位debian nginx故障

小樊
36
2026-09-28 11:39:59
栏目: 智能运维

在 Debian 上排查 Nginx 故障,通常可以按“由外到内、由配置到运行”的思路来定位。下面是一套比较系统的排查流程。


一、确认 Nginx 是否在运行

systemctl status nginx

或

ps aux | grep nginx

常见情况:

  • active (running) → 服务正常
  • failed → 启动失败(看日志)
  • 没有进程 → 没启动或被杀

启动 / 重启:

systemctl start nginx
systemctl restart nginx

二、查看 Nginx 报错信息(最重要)

1. 查看 systemd 报错

journalctl -u nginx -xe

2. 查看 Nginx 错误日志

tail -n 50 /var/log/nginx/error.log

常见错误:

  • Address already in use → 端口被占用
  • permission denied → 权限问题
  • no such file or directory → 路径错误
  • unknown directive → 配置语法错误

三、检查 Nginx 配置文件

1. 测试配置是否正确

nginx -t

输出示例:

nginx: configuration file /etc/nginx/nginx.conf test is successful

如果失败,会指出具体文件和行号。

2. 常见配置位置

  • 主配置:/etc/nginx/nginx.conf
  • 站点配置:/etc/nginx/sites-enabled/
  • 模块配置:/etc/nginx/conf.d/

四、端口与网络问题

1. 查看监听端口

ss -lntp | grep nginx

或

netstat -lntp | grep nginx

确认是否监听:

  • 0.0.0.0:80
  • :::80
  • 0.0.0.0:443

2. 端口被占用

ss -lntp | grep ':80'

常见于:

  • Apache
  • 其他 Nginx
  • Docker

五、防火墙与云安全组

Debian 本地防火墙

iptables -L -n
# 或
nft list ruleset

如果是 ufw:

ufw status

云服务器

  • 安全组是否放行 80 / 443
  • 是否绑定了公网 IP

六、访问层面验证

本地访问

curl -I http://127.0.0.1

域名访问

curl -I http://your-domain.com

若本地通、外部不通 → 网络 / DNS / 防火墙问题


七、常见故障场景速查

1. 403 Forbidden

  • 目录无权限
  • index 文件不存在
  • autoindex off

2. 502 Bad Gateway

  • 后端(PHP / Python)未启动
  • fastcgi_pass / proxy_pass 错误

3. 504 Gateway Timeout

  • 后端响应慢
  • 超时时间过短

4. 网站打不开但 Nginx 在跑

  • server_name 不匹配
  • 站点未启用(sites-enabled)

八、开启 debug(高级)

error_log /var/log/nginx/error.log debug;

然后:

nginx -s reload

九、快速定位思路总结

  1. nginx -t → 配置对不对
  2. systemctl status nginx → 服务起没起
  3. error.log → 真正报错在哪
  4. ss -lntp → 端口对不对
  5. curl → 本地能不能通
  6. 防火墙 / 安全组 → 外部能不能进

如果你愿意,可以把 具体报错信息或 nginx -t 输出贴出来,我可以直接帮你定位是哪一类问题。

0 踩