温馨提示×

nginx错误日志如何排查

小樊
45
2026-07-18 23:49:09
栏目: 编程语言

排查 Nginx 错误日志是定位 Web 服务问题最关键的一步。下面按实战流程给你一个清晰、可操作的排查指南。


一、先找到 Nginx 错误日志在哪里

1️⃣ 查看错误日志路径

nginx -T 2>/dev/null | grep error_log

常见默认路径:

/var/log/nginx/error.log
/var/log/nginx/error.log
/usr/local/nginx/logs/error.log

也可以在配置中直接看:

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

二、实时查看错误日志(最常用)

实时跟踪错误

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

查看最近 50 行

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

过滤关键字

grep -i error /var/log/nginx/error.log
grep -i failed /var/log/nginx/error.log

三、错误日志级别(很重要)

Nginx 日志级别(从低到高):

debug < info < notice < warn < error < crit < alert < emerg

建议配置

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

⚠️ 生产环境不要用 debug,会严重影响性能


四、常见 Nginx 错误 & 排查方法

1️⃣ 502 Bad Gateway

错误日志示例:

connect() failed (111: Connection refused) while connecting to upstream

✅ 排查步骤:

  • 后端服务是否启动
ps -ef | grep php-fpm
ss -lntp | grep 9000
  • upstream 配置是否正确
upstream backend {
    server 127.0.0.1:8080;
}

2️⃣ 504 Gateway Timeout

upstream timed out (110: Connection timed out)

✅ 排查:

  • 后端响应太慢
  • 调整超时时间
proxy_read_timeout 60s;
proxy_connect_timeout 60s;

3️⃣ 403 Forbidden

directory index of "/var/www/html/" is forbidden

✅ 排查:

  • 目录无 index 文件
  • 权限问题
ls -ld /var/www/html
chmod -R 755 /var/www/html

4️⃣ 404 Not Found

✅ 排查:

  • root / alias 是否写错
root /var/www/html;
  • location 匹配是否正确
  • 文件是否真实存在

5️⃣ 配置错误

nginx: [emerg] unknown directive "server"

✅ 排查:

nginx -t

五、结合 access.log 一起分析(强烈推荐)

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

同时观察:

  • 状态码(200 / 404 / 500)
  • 请求接口和时间

示例:

POST /api/login HTTP/1.1 502

六、快速排查清单(实战顺序)

✅ 1. nginx -t
✅ 2. 重启 Nginx
✅ 3. tail -f error.log
✅ 4. 复现问题
✅ 5. 看具体报错行
✅ 6. 查权限 / 路径 / 后端服务


七、实用组合命令

# 查看最近错误
tail -100 /var/log/nginx/error.log | grep -i error

# 按时间过滤(今天)
grep "$(date '+%Y/%m/%d')" /var/log/nginx/error.log

如果你愿意,可以直接把 error.log 的具体报错贴出来,我可以帮你逐行分析 ✅

0