Nginx管理日志记录

来自泡泡学习笔记
BrainBs讨论 | 贡献2024年4月7日 (日) 17:39的版本 (创建页面,内容为“ 您可以使用默认的日志记录或自定义日志记录。 <br> == 使用默认的日志记录 == 默认情况下,NGINX镜像配置为将NGINX访问日志和错误日志发送到Docker日志收集器。这是通过将它们链接到stdout和stderr来完成的:然后所有来自这两个日志的消息都被写入到Docker主机上的文件/var/lib/docker/containers/container-ID/container-ID-json.log中。容器ID是创建容器时返回的长格式…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

您可以使用默认的日志记录或自定义日志记录。


使用默认的日志记录

默认情况下,NGINX镜像配置为将NGINX访问日志和错误日志发送到Docker日志收集器。这是通过将它们链接到stdout和stderr来完成的:然后所有来自这两个日志的消息都被写入到Docker主机上的文件/var/lib/docker/containers/container-ID/container-ID-json.log中。容器ID是创建容器时返回的长格式ID。要显示长格式ID,请运行命令:

docker inspect --format '{{ .Id }}' container-name


您可以使用Docker命令行和Docker Engine API来提取日志消息。


要从命令行提取日志消息,请运行命令:

docker logs container-name


要使用Docker远程API提取日志消息,请使用Docker Unix套接字发送GET请求:

curl --unix-sock /var/run/docker-sock http://localhost/containers/container-name/logs?stdout=1&stderr=1


要在输出中仅包含访问日志消息,请仅包含stdout=1。要将输出限制为错误日志消息,请仅包含stderr=1。有关其他可用选项,请参阅Docker Engine API文档的“获取容器日志”部分。


使用自定义日志记录

如果您想为某些配置块(如server {}和location {})不同地配置日志记录,请定义一个Docker卷以在容器中存储日志文件的目录,创建一个辅助容器以访问日志文件,并使用任何日志工具。为此,创建一个包含日志文件卷的新镜像。


例如,要将NGINX配置为将日志文件存储在/var/log/nginx/log中,请将此目录的VOLUME定义添加到Dockerfile中(假设内容和配置文件在容器中管理):

FROM nginx
COPY content /usr/share/nginx/html
COPY conf /etc/nginx
VOLUME /var/log/nginx/log

然后,您可以创建一个镜像,并使用它来创建一个NGINX容器和一个具有访问日志目录权限的辅助容器。辅助容器可以安装任何所需的日志工具。


控制NGINX

由于无法直接访问NGINX容器的命令行,因此无法直接向容器发送NGINX命令。相反,可以通过Docker kill命令向容器发送信号。


要重新加载NGINX配置,请向Docker发送HUP信号:

docker kill -s HUP container-name


要重启NGINX,请运行此命令以重启容器:

docker restart container-name