【发布时间】:2023-03-12 09:25:01
【问题描述】:
我知道以前有人问过这个问题,但我相信这是一个不同的问题。
Nginx 在www-data下运行:
$ ps -eo "%U %G %a" | grep nginx
root root nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data www-data nginx: worker process
/var/log/nginx/* 拥有正确的权限:
$ ls -lah /var/log/nginx/
total 291M
drwxr-x--- 2 www-data adm 4.0K Jul 25 06:25 .
drwxrwxr-x 14 root syslog 4.0K Aug 28 06:25 ..
-rw-r----- 1 www-data adm 12K Aug 28 19:03 access.log
-rw-r----- 1 www-data adm 250M Aug 28 18:50 access.log.1
Logrotate 创建具有正确权限的日志文件:
/var/log/nginx/*.log {
( ... )
create 0640 www-data adm
Nginx 重新启动时记录到access.log,但在 logrotate 第一次运行后移动到access.log.1。之后,始终记录到access.log.1,之后不会轮换日志文件。
编辑:已经在 cmets 中指出,您看到 access.log 的访问时间比 access.log.1 晚的原因是因为我在这样做之前重新启动了 nginx ls,只是为了确保在发帖之前对我自己来说,确实重新启动 nginx 正在解决问题(直到下一次 logrotate)。但在此之前ls nginx 已经登录access.log.1 大约 3 周...
EDIT2:这里是/etc/nginx/nginx.conf,头部和提到日志记录的位
user www-data;
worker_processes auto;
pid /run/nginx.pid;
( ... )
http {
( ... )
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
( ... )
【问题讨论】:
-
那么为什么我们看到 access.log 会在以后更新 acces.log.1 呢?从您向我们展示的内容看来,它工作正常。
-
因为在我这样做之前我刚刚重新启动了 nginx
ls -
您能否发布一部分 nginx 配置文件,其中指定有关日志记录的任何内容?
-
@Neal 完成,请检查。