温馨提示×

为何nginx日志出现报错

小樊
39
2026-09-05 17:37:14
栏目: 编程语言

Nginx 日志中出现报错的原因有很多种,下面我按常见类型 + 典型报错示例 + 可能原因给你系统梳理一下,方便你对照排查。


一、配置类错误(最常见)

1️⃣ 配置文件语法错误

日志示例

nginx: [emerg] unknown directive "server_" in /etc/nginx/nginx.conf:12

原因

  • 指令拼写错误
  • 配置放在了错误的 {} 层级
  • 缺少分号 ;

排查

nginx -t

2️⃣ 端口被占用

日志示例

bind() to 0.0.0.0:80 failed (98: Address already in use)

原因

  • 另一个 Nginx / Apache 已占用 80
  • 之前 Nginx 未完全退出

解决

lsof -i:80
kill -9 <pid>

二、权限类错误

3️⃣ 权限不足

日志示例

Permission denied) while reading upstream

open() "/var/www/html/index.html" failed (13: Permission denied)

原因

  • Nginx 用户(www-data / nginx)无文件权限
  • SELinux / AppArmor 限制

解决

chown -R nginx:nginx /var/www
chmod 755 /var/www

三、反向代理 / 上游错误

4️⃣ 后端服务不可用

日志示例

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

原因

  • 后端服务没启动
  • upstream 地址或端口写错

排查

curl http://127.0.0.1:8080

5️⃣ 超时

日志示例

upstream timed out (110: Connection timed out)

原因

  • 后端处理慢
  • 网络延迟高

优化

proxy_read_timeout 60s;
proxy_connect_timeout 10s;

四、SSL / HTTPS 错误

6️⃣ 证书问题

日志示例

SSL_CTX_use_certificate_chain_file("...") failed

原因

  • 证书路径错误
  • 证书和私钥不匹配

检查

openssl x509 -noout -text -in cert.pem

五、文件 / 路径错误

7️⃣ 文件不存在

日志示例

404 Not Found

open() "/usr/share/nginx/html/test.html" failed (2: No such file or directory)

原因

  • root / alias 配置错误
  • 文件确实不存在

六、请求类问题

8️⃣ 请求体过大

日志示例

413 Request Entity Too Large

解决

client_max_body_size 20m;

七、如何快速定位问题

第一步:看错误类型

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

第二步:区分

  • emerg → 启动失败
  • error → 运行异常
  • warn → 一般不影响

第三步:结合 access.log

tail -n 20 /var/log/nginx/access.log

八、如果你愿意,我可以更精准帮你

你可以直接贴出:

  1. 完整报错日志
  2. 相关 nginx 配置
  3. Nginx 版本 & 系统

我可以帮你逐行分析并给出修改方案

0