要设置Nginx日志保留期限,您可以使用logrotate
工具来自动管理日志文件
确保logrotate
已安装在您的系统上。在大多数Linux发行版中,logrotate
已经预装。如果没有,请使用包管理器安装,例如在Ubuntu/Debian上使用sudo apt-get install logrotate
。
创建一个新的logrotate
配置文件,或者在现有的配置目录(通常位于/etc/logrotate.d/
)中创建一个新文件。例如,您可以创建一个名为nginx
的文件:
sudo nano /etc/logrotate.d/nginx
在新创建的配置文件中,添加以下内容:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
这里的配置表示:
daily
:每天轮转日志文件。missingok
:如果日志文件丢失,不要报错。rotate 7
:保留7个轮转日志文件。compress
:压缩旧的日志文件。notifempty
:如果日志文件为空,则不进行轮转。create 0640 www-data adm
:创建新的日志文件,权限为0640,属主为www-data,属组为adm。sharedscripts
:如果有多个日志文件,只执行一次postrotate脚本。postrotate
和endscript
之间的脚本会在轮转日志后执行。这里我们发送一个USR1信号给Nginx进程,通知它重新打开日志文件。保存并关闭配置文件。
测试logrotate
配置是否正确:
sudo logrotate -f /etc/logrotate.d/nginx
这将强制执行Nginx日志轮转。检查/var/log/nginx/
目录,确保日志文件已按预期轮转。
现在,Nginx日志将按照您在配置文件中设置的保留期限进行自动管理。