Nginx日志轮转可以通过配置logrotate
工具来实现。以下是设置Nginx日志轮转的步骤:
确保已经安装了logrotate
。在大多数Linux发行版中,logrotate
已经预装。如果没有安装,可以使用包管理器进行安装,例如在Ubuntu/Debian上使用sudo apt-get install logrotate
。
创建一个logrotate
配置文件,用于指定Nginx日志轮转的规则。通常,这个文件位于/etc/logrotate.d/nginx
。如果该文件不存在,可以手动创建一个。
编辑/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
}
这里的配置解释如下:
/var/log/nginx/*.log
:指定需要轮转的日志文件路径。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日志轮转已经设置好了。logrotate
会按照指定的规则自动轮转日志文件。如果需要修改轮转规则,只需编辑/etc/logrotate.d/nginx
文件即可。