Nginx配置error_log日志级别排查错误 Nginx
前言
Nginx 报错只在浏览器看到 502/404,具体原因要查 error_log。默认日志级别可能太粗,关键错误被淹没;排查时可调高详细级别。本文讲解 error_log 位置、级别选择、按 server 单独设日志和常用错误对照。
操作步骤
1. 查看全局错误日志位置
nginx -T 2>/dev/null | grep error_log
常见路径 /var/log/nginx/error.log。
2. 设置日志级别(http 块)
error_log /var/log/nginx/error.log warn;
级别从低到高:debug, info, notice, warn, error, crit。
3. 单独为某站点设日志
server {
error_log /var/log/nginx/site-error.log warn;
}
4. 实时跟踪错误
tail -f /var/log/nginx/error.log
5. 排查时临时开 debug
error_log /var/log/nginx/error.log debug;
排查完及时降回,避免日志暴增。
6. 校验并重载
nginx -t && nginx -s reload
常见坑
- 只看 access.log,真正原因在 error.log。
- debug 级别长期开启,磁盘被海量日志写满。
- 日志路径目录不存在,Nginx 启动失败。
- 多个 server 共用日志,分不清哪个站点报错。
- 日志切割未配置,单文件无限增长。
- 权限不足写不进日志,降为 error 级别也可能失败。
- 反代错误(upstream)要结合后端日志一起看。
总结
error_log 设路径和级别,warn 日常够用,排查临时升 debug。按站点单独分日志便于定位。debug 用完即关,配合 logrotate 切割。502/超时类问题把 error.log 和后端日志对照看。
遇到问题加QQ23979811 协助处理