要设置 Nginx 日志轮转,您可以使用 logrotate 工具。以下是配置 Nginx 日志轮转的步骤:
确保 logrotate 已经安装在您的系统上。在大多数 Linux 发行版中,logrotate 已经预装。您可以通过运行以下命令来检查 logrotate 是否已安装:
logrotate --version
如果没有安装 logrotate,您可以使用包管理器来安装它。例如,在基于 Debian 的系统上,您可以使用以下命令来安装:
sudo apt-get install logrotate
创建一个 logrotate 配置文件,专门用于 Nginx。在 /etc/logrotate.d/
目录下创建一个名为 nginx
的文件:
sudo nano /etc/logrotate.d/nginx
将以下内容粘贴到 nginx
文件中,然后保存并关闭文件。这个配置文件定义了 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 日志轮转已经设置好了。logrotate 将根据配置文件中定义的策略自动轮转 Nginx 日志文件。您还可以手动触发日志轮转,只需运行以下命令:
sudo logrotate -f /etc/logrotate.d/nginx