有没有办法让主进程记录到STDOUT STDERR中而不是记录到文件中?
似乎只能将文件路径传递给access_log指令:
access_log /var/log/nginx/access.log
Error_log也是如此:
error_log /var/log/nginx/error.log
我知道这可能不是nginx的一个特性,例如,我会对使用tail的简明解决方案感兴趣。不过,它最好来自主进程,因为我在前台运行nginx。
发布于 2017-02-21 22:07:49
如果问题和码头有关...官方的nginx docker镜像通过建立指向stdout/stderr的软链接来实现这一点
RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log
发布于 2015-04-30 02:22:18
Syntax: error_log file | stderr | syslog:server=address[,parameter=value] | memory:size [debug | info | notice | warn | error | crit | alert | emerg];
Default:
error_log logs/error.log error;
Context: main, http, stream, server, location
http://nginx.org/en/docs/ngx_core_module.html#error_log
不要使用:/dev/stderr
如果你要使用systemd-nspawn,这会破坏你的设置。
发布于 2017-05-17 00:54:15
在Docker容器中运行Nginx时,请注意,挂载在日志目录上的卷会违背在日志文件和Docker文件中的stdout/stderr之间创建软链接的目的,如@Boeboe 's answer中所述。
在这种情况下,您可以在入口点中创建软链接(在安装卷之后执行),也可以根本不使用卷(例如,当日志已由中央日志系统收集时)。
https://stackoverflow.com/questions/22541333
复制相似问题