要设置 Nginx 日志轮转以节省空间,请按照以下步骤操作:
- 首先,确保已经安装了 Nginx。如果尚未安装,可以使用以下命令进行安装(以 Ubuntu 为例):
sudo apt-get update sudo apt-get install nginx
-
找到 Nginx 日志文件的位置。默认情况下,日志文件通常位于
/var/log/nginx/
目录下,其中access.log
是访问日志,error.log
是错误日志。 -
使用 logrotate 工具来管理日志轮转。logrotate 是一个用于管理日志文件的系统工具,可以自动压缩、移动、删除和邮件通知日志文件。首先,创建一个新的 logrotate 配置文件,例如
/etc/logrotate.d/nginx
:
sudo touch /etc/logrotate.d/nginx sudo nano /etc/logrotate.d/nginx
- 在新创建的配置文件中,添加以下内容:
/var/log/nginx/*.log { daily missingok rotate 7 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
) - 保留最近 7 天的日志文件(
rotate 7
) - 使用 gzip 压缩旧的日志文件(
compress
) - 不在日志文件创建后立即压缩(
delaycompress
) - 仅在日志文件非空时进行轮转(
notifempty
) - 以 0640 的权限创建日志文件,属于 www-data 用户和 adm 用户(
create 0640 www-data adm
) - 在日志轮转后执行 postrotate 脚本,向 Nginx 发送 USR1 信号,通知其重新打开日志文件(
sharedscripts
和postrotate
块)
-
保存并退出编辑器。
-
测试 logrotate 配置是否正确:
sudo logrotate -d /etc/logrotate.d/nginx
如果没有错误,那么配置应该是正确的。
- 最后,确保 logrotate 服务在系统启动时自动运行:
sudo systemctl enable logrotate sudo systemctl start logrotate
现在,Nginx 日志文件将按照配置文件中的设置进行轮转,从而节省磁盘空间。