当nginx长时间运行后,nginx的访问日志会变得越来越大,这将增加服务器的负担。因此,需要对日志进行分割。本文将介绍如何在Linux系统上使用logrotate进行nginx日志分割。此外,示例说明也将提供默认的nginx安装路径和日志文件路径。
步骤一:安装logrotate
第一步是安装logrotate,使用以下命令进行安装:
sudo apt-get install logrotate
步骤二:创建nginx日志分割配置文件
接下来,您需要创建一个配置文件,它告诉logrotate如何处理nginx日志文件。使用以下命令创建一个文件:
sudo nano /etc/logrotate.d/nginx
在文件中添加以下内容:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
/etc/init.d/nginx reload > /dev/null
endscript
}
注意,这里的路径/var/log/nginx/*.log
是nginx日志文件的默认位置,如果您的nginx日志文件存储在其他位置,应该相应地进行更改。
接下来,让我们仔细看看这个配置文件中的每个选项的含义:
daily
: 指定日志文件每天分割一次。missingok
: 如果日志文件不存在不要报错,直接退出。rotate 7
: 指定保留最近7天的日志文件。compress
: 指定日志文件分割后进行压缩。delaycompress
: 延迟压缩,不压缩当前日志文件,到下一轮再压缩。notifempty
: 如果日志文件为空不要报错,直接退出。create
: 指定新创建的日志文件的权限和所有权。sharedscripts
: 用于在每个日志文件分割后重新加载nginx配置。postrotate
: 在日志文件分割后重载nginx配置。
步骤三:测试日志分割
logrotate配置文件已经创建,接下来,让我们手动测试一下日志分割。使用以下命令更改nginx.conf文件,将访问日志文件的位置更改为默认的nginx日志文件位置:
sudo nano /etc/nginx/nginx.conf
找到以下行:
access_log /path/to/access.log;
将其更改为:
access_log /var/log/nginx/access.log;
现在,使用以下命令立即分隔日志文件:
sudo logrotate -vf /etc/logrotate.d/nginx
上面的命令中,-v
选项表示在分隔日志文件过程中显示详情,-f
选项强制进行日志文件分割。
你可以通过以下命令查看最新的日志文件:
ls -la /var/log/nginx/
你应该可以看到一个类似于access.log-20201120.gz
的文件名,其中日期是分割文件的创建日期。
示例说明
示例一:按天分割nginx日志文件
在logrotate文件中,通过daily
选项指定每天分隔nginx日志文件。示例文件如下:
/var/log/nginx/*.log {
daily
...
}
示例二:按大小分割nginx日志文件
在logrotate文件中,可以通过size
选项指定文件大小。示例文件如下:
/var/log/nginx/*.log {
size 10M
...
}
上面的文件指定了当文件大小达到10MB时进行日志文件分割。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nginx日志分割 for linux - Python技术站