有没有办法让主进程记录到STDOUT STDERR而不是文件?
您似乎只能将文件路径传递给access_log指令:
access_log /var/log/nginx/access.log
Run Code Online (Sandbox Code Playgroud)
error_log也是如此:
error_log /var/log/nginx/error.log
Run Code Online (Sandbox Code Playgroud)
据我所知,这可能不是nginx的一个特性,我会对使用tail的简洁解决方案感兴趣.虽然它来自主进程,但最好是因为我在前台运行nginx.
Pat*_*ick 171
编辑:似乎nginx现在支持Anon的回答中error_log stderr;提到的.
您可以将日志发送到/dev/stdout.在nginx.conf:
daemon off;
error_log /dev/stdout info;
http {
access_log /dev/stdout;
...
}
Run Code Online (Sandbox Code Playgroud)
编辑:如果使用运行某些docker容器,可能需要运行ln -sf/proc/self/fd/dev /,然后使用/dev/fd/1或/dev/fd/2
Boe*_*boe 45
如果问题是与docker相关的...官方的nginx docker图像是通过向stdout/stderr建立软链接来实现的
RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log
REF:https://microbadger.com/images/nginx
小智 21
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
Run Code Online (Sandbox Code Playgroud)
http://nginx.org/en/docs/ngx_core_module.html#error_log
不要使用:/dev/stderr
如果您要使用systemd-nspawn,这将破坏您的设置.
int*_*ika 12
出于调试目的:
/usr/sbin/nginx -g "daemon off;error_log /dev/stdout debug;"
Run Code Online (Sandbox Code Playgroud)
为了经典的目的
/usr/sbin/nginx -g "daemon off;error_log /dev/stdout info;"
Run Code Online (Sandbox Code Playgroud)
要求
在配置文件的服务器支架下
access_log /dev/stdout;
Run Code Online (Sandbox Code Playgroud)
有关更多信息,您可以参阅Dockerfile1-alpine 版本的编写,其中将访问日志和错误日志分别软链接到 stdout 和 stderr。其他 docker 标签也有它。
参考: https: //github.com/nginxinc/docker-nginx/blob/1.23.1/stable/alpine/Dockerfile#L118-L119
在 Docker 容器中运行 Nginx 时,请注意挂载在日志目录上的卷违背了在日志文件和 Dockerfile 中的 stdout/stderr 之间创建软链接的目的,如@Boeboe 的回答中所述。
在这种情况下,您可以在入口点创建软链接(在安装卷后执行)或根本不使用卷(例如,当日志已由中央日志系统收集时)。
在 PHP-FPM 的 docker 镜像中,我看到了这样的方法:
# cat /usr/local/etc/php-fpm.d/docker.conf
[global]
error_log = /proc/self/fd/2
[www]
; if we send this to /proc/self/fd/1, it never appears
access.log = /proc/self/fd/2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98005 次 |
| 最近记录: |