如何关闭或指定nginx错误日志位置?

Dea*_*hen 22 nginx

我自己在Ubuntu上编译了nginx.我用-c nginx.conf参数启动我的nginx.在我的nginx.conf文件中,我尝试关闭错误日志但失败了.

error_log /dev/null crit;
Run Code Online (Sandbox Code Playgroud)

仍然收到错误消息:nginx:[alert]无法打开错误日志文件:open()"/ usr/nginx/logs/error.log"失败(2:没有这样的文件或目录)

我怎么能关掉这个日志或改变它的位置?

Ric*_*kyA 19

禁用错误日志的语法是可以的,但文档声明在读取配置之前使用了默认日志文件.(这似乎是合理的,因为它会如何告诉你配置中有错误)

尝试手动创建此文件,并为运行nginx的用户提供正确的权限.或者尝试以root身份启动服务器.

  • 几乎在所有情况下,`chmod a + w`都是一个坏主意.确保在nginx配置的*top level*中设置`error_log`(甚至在`http`块日志之外).您仍然会得到`nginx:[alert]无法打开错误日志文件:open()"/ usr/nginx/logs/error.log"`,但是`[alert]`不是严重错误,您的服务器将启动无论如何.尝试使用nginx 1.4. (4认同)

Mic*_*ael 14

我在启动nginx时使用-p参数解决了这个问题,例如:

/home/ubuntu/nginx/sbin/nginx -c /home/ubuntu/nginx/conf/nginx.conf -p /home/ubuntu/nginx
Run Code Online (Sandbox Code Playgroud)

这将在配置中使用前缀目录预先添加任何日志路径.

  • 你不需要设置`-p`来使它工作.但要确保在nginx配置的*top level*中设置`error_log`.您仍然会得到`nginx:[alert]无法打开错误日志文件:open()"/ usr/nginx/logs/error.log"`,但是`[alert]`不是严重错误,您的服务器将启动无论如何.尝试使用nginx 1.4. (3认同)