nginx 的 error_log 是自带核心功能,配置路径和级别后自动记录启动、配置加载、worker 异常等运行错误;优先级为 location > server > http > main;生产推荐 warn 或 error 级别;修改后需 nginx -t 校验并 reload 生效。

Linux 下 Nginx 的 error_log 本身记录的就是系统运行错误日志——它不是“额外配置才能记录”,而是 Nginx 自带的核心功能,只要配置了路径和级别,就会自动记录进程启动、配置加载、worker 异常、上游连接失败、磁盘写入错误等底层运行问题。
确认当前 error_log 配置位置
Nginx 的 error_log 可出现在多个层级:main(全局)、http、server、location。优先级由近及远,即 location 中的设置会覆盖 server,server 覆盖 http,以此类推。
- 执行命令快速定位:
grep -r "error_log" /etc/nginx/ --include="*.conf" - 常见默认路径是
/var/log/nginx/error.log,但实际以配置中error_log指令指定的 file 为准 - 若某 virtual host 的
server块里单独写了error_log /var/log/nginx/myapp.error.log warn;,那该站点的错误就只写进这个文件,且级别为 warn
设置合适的日志级别
级别决定哪些事件会被记录。级别越低(如 debug),记录越详细;越高(如 emerg),只记最紧急事件。生产环境推荐 warn 或 error:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
warn:记录警告(如模块初始化异常)+error及以上,适合日常监控 -
error:默认值,记录实际错误(如找不到文件、上游超时),日志量适中 -
crit及以上仅用于极端告警场景,一般不建议设为默认 -
debug需 Nginx 编译时启用--with-debug,否则无效
修改配置并生效
编辑对应配置文件(如 /etc/nginx/nginx.conf),在 http 块中添加或修改:
error_log /var/log/nginx/error.log warn;
- 确保目标目录存在且 Nginx 进程有写权限(如
chown www-data:www-data /var/log/nginx/) - 保存后运行
nginx -t校验语法是否正确 - 执行
systemctl reload nginx(或nginx -s reload)使配置生效
验证日志是否正常输出
调整后不会立刻刷出大量新日志,因为很多事件只在重载或启动时触发:
- 执行一次
nginx -s reload,然后查看/var/log/nginx/error.log是否新增类似reloading configuration的notice或info条目(说明日志机制已激活) - 若需临时抓取某请求的详细行为,可在对应
server或location中加一行:error_log /var/log/nginx/debug.log debug;,调试完记得注释并 reload - 注意:
error_log记录的是 Nginx 自身运行问题,不是后端应用报错(那是 upstream 日志或应用自己的日志)










