在Debian系统中,Nginx日志轮转通常是通过logrotate
工具来实现的。logrotate
是一个用于管理日志文件的实用程序,它可以自动压缩、删除和轮转日志文件。要设置Nginx日志轮转,请按照以下步骤操作:
-
确保
logrotate
已安装:在Debian系统中,
logrotate
通常已预装。如果没有安装,可以使用以下命令安装:sudo apt-get update sudo apt-get install logrotate
-
创建Nginx日志轮转配置文件:
在
/etc/logrotate.d/
目录下创建一个名为nginx
的配置文件:sudo nano /etc/logrotate.d/nginx
-
编辑配置文件:
在打开的文件中,添加以下内容:
/var/log/nginx/*.log { daily missingok compress delaycompress 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
) - 轮转后的日志文件使用gzip压缩(
compress
) - 延迟压缩,直到下一次轮转(
delaycompress
) - 如果日志文件为空,则不进行轮转(
notifempty
) - 创建新的日志文件,权限为0640,属主为www-data,属组为adm(
create 0640 www-data adm
) - 在轮转前后执行脚本(
sharedscripts
) - 轮转后向Nginx发送USR1信号,通知Nginx重新打开日志文件(
postrotate
…endscript
)
- 每天轮转日志文件(
-
保存并退出配置文件。
-
测试配置文件:
使用以下命令测试
logrotate
配置文件是否正确:sudo logrotate -f /etc/logrotate.d/nginx
如果没有错误信息,说明配置正确。
现在,Nginx日志轮转已经设置好了。logrotate
会根据配置文件中的设置自动轮转日志文件。你可以通过查看/var/log/nginx/
目录下的日志文件来验证轮转是否正常进行。