无法更改 nginx 错误日志文件名

无法更改 nginx 错误日志文件名

有没有办法更改错误日志文件名。无论我做什么,当请求得到处理时,我总是将错误日志写入默认文件名“error.log”。我在主上下文中有一个全局且只有一个错误日志配置:

user  npcache;
worker_processes  2;

error_log /opt/logs/nginx/error1.log notice;
pid       /opt/logs/nginx/nginx.pid;

events {
  worker_connections  1024;
  multi_accept on;
}

http {
  error_log  /opt/logs/nginx/error.log notice;
  include ./mime.types;
  default_type application/octet-stream;

  #Access log configuration
  log_format main '"$remote_addr" "$host" "$http_host" ["$time_local"]'
                  '"$request" $status $body_bytes_sent "$http_referer"';
  access_log /opt/logs/nginx/access.log main;
. . .
}

通过此配置,我将错误日志写入 /opt/logs/nginx/error.log 而不是“error1.log”。

我在配置中遗漏了什么吗?

我发现该问题与 http 上下文中的第二个错误日志有关,该日志掩盖了顶层错误日志。

谢谢

答案1

您需要在 nginx.conf 中发布类似这样的内容,可能位于 /etc/nginx/nginx.conf 中。它位于文件顶部,事件和 http 块之外。您也可以将其放在服务器或位置级别。文档在这里

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

Nginx 文档非常出色,许多疑问已经在 Server Fault 和网上得到解答。有时搜索可以节省您等待别人回答您​​的问题的时间。

答案2

你显然无法改变最初的错误日志,它设置了一个编译时间。这最初的在接受连接之前,log 用于报告配置文件等中的错误。

我理解这背后的逻辑,但我认为这不是一个好的选择。这意味着,如果您想在系统中以不同的(非 root)用户身份运行多个 NGINX,您必须拥有 root 访问权限才能使 /var/log/nginx/* 日志目录可供普通用户写入。

@nginx 开发人员:我建议发送最初的正如传统所说,错误发送到 STDERR..​​....

相关内容