温馨提示×

如何定位Nginx错误

小樊
56
2026-09-16 11:47:03
栏目: 编程语言

定位 Nginx 错误通常可以从错误日志、访问日志、配置文件、系统资源几个层面入手。下面给你一套比较实用的排查思路和方法。


一、先看 Nginx 错误日志(最重要)

1. 找到错误日志位置

通常在:

/var/log/nginx/error.log

或在 nginx.conf 中定义:

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

2. 实时查看错误

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

3. 常见错误含义

  • permission denied:文件/目录权限问题
  • no such file or directory:root 路径或 index 文件不对
  • address already in use:端口被占用
  • upstream timed out:后端服务慢或挂了
  • SSL_CTX / certificate 相关:证书配置错误

二、检查 Nginx 配置是否正确

1. 测试配置文件

nginx -t

输出示例:

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

2. 常见配置错误

  • server_name 不匹配
  • root 路径不存在
  • location 写错
  • proxy_pass 后端地址错误

三、查看访问日志(定位请求问题)

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

重点看:

  • 状态码(200 / 404 / 502 / 503 / 504)
  • 请求 URL
  • 客户端 IP

常见状态码:

  • 404:路径或资源不存在
  • 502:后端挂了(PHP / Java / Node)
  • 503:限流或后端不可用
  • 504:后端超时

四、确认 Nginx 是否在运行

ps aux | grep nginx
systemctl status nginx

重启 Nginx:

systemctl restart nginx

五、检查端口和防火墙

netstat -tunlp | grep 80
# 或
ss -tunlp | grep 80

防火墙:

iptables -L
# 或
ufw status

六、后端服务问题(502 / 504)

如果是反向代理:

location / {
    proxy_pass http://127.0.0.1:8080;
}

检查后端:

curl http://127.0.0.1:8080

七、权限问题(非常常见)

ls -l /var/www/html

确保:

  • Nginx 用户(如 www-data)有读权限
  • 目录有执行权限(x)

八、开启 debug 日志(高级)

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

⚠️ 仅用于排查,不要长期开启。


九、快速定位流程总结

  1. nginx -t
  2. tail -f error.log
  3. 看状态码(access.log)
  4. 检查 root / proxy_pass
  5. 检查权限 / 端口 / 后端

如果你愿意,可以把具体错误信息或 Nginx 配置贴出来,我可以直接帮你定位问题。

0 踩