排查 Nginx 错误日志是定位 Web 服务问题最关键的一步。下面按实战流程给你一个清晰、可操作的排查指南。
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
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,会严重影响性能
错误日志示例:
connect() failed (111: Connection refused) while connecting to upstream
✅ 排查步骤:
ps -ef | grep php-fpm
ss -lntp | grep 9000
upstream backend {
server 127.0.0.1:8080;
}
upstream timed out (110: Connection timed out)
✅ 排查:
proxy_read_timeout 60s;
proxy_connect_timeout 60s;
directory index of "/var/www/html/" is forbidden
✅ 排查:
ls -ld /var/www/html
chmod -R 755 /var/www/html
✅ 排查:
root /var/www/html;
nginx: [emerg] unknown directive "server"
✅ 排查:
nginx -t
tail -f /var/log/nginx/access.log
同时观察:
示例:
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 的具体报错贴出来,我可以帮你逐行分析 ✅