Nginx 没有原生的日志轮换,所以需要一个外部工具,比如 logrotate。Nginx 提出了一个挑战,因为日志必须在轮换后重新打开。如果 pid 在 /var/run 中可用,您可以向它发送 USR1 信号。
但是在 docker 容器中运行时,/var/run 中缺少 pid 文件(并且 pid 实际上属于主机,因为它在技术上是一个主机进程)。
如果您不重新打开日志,则 nginx 根本不会记录任何内容,尽管它会继续作为 Web 服务器、反向代理等运行。
logging logrotate nginx docker
docker ×1
logging ×1
logrotate ×1
nginx ×1