要设置 Nginx 日志轮转周期,您需要使用 logrotate 工具。以下是在 Linux 系统中设置 Nginx 日志轮转周期的步骤:
确保 logrotate 已经安装在您的系统上。大多数 Linux 发行版默认已经安装了 logrotate。如果没有安装,您可以使用以下命令安装:
对于基于 Debian 的系统(如 Ubuntu):
sudo apt-get update
sudo apt-get install logrotate
对于基于 RHEL 的系统(如 CentOS):
sudo yum install logrotate
创建一个新的 logrotate 配置文件,或者在现有的配置文件中添加 Nginx 日志轮转设置。通常,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
如果一切正常,您应该会看到 logrotate 处理 Nginx 日志文件的输出。
现在,Nginx 日志轮转周期已经设置好了。logrotate 将根据您在配置文件中设置的参数自动轮转日志。