nginx日志配置,nginx日志在哪里,nginx日志清理,nginx日志切割,按天分割,自动删除30天,66天,90天日志
一、 nginx日志配置
现在很多人使用nginx作为web服务器,
nginx access访问日志使用 access_log 指令,
可以在下面几个Context上下文中使用 http, server, location, if in location, limit_except
声明log log文件路径 log格式
access_log logs/access.log main;
关闭日志
access_log off;
nginx error错误日志使用 error_log 指令,
可以在下面几个Context上下文中使用main, http, mail, stream, server, location
error_log logs/error.log error;
二、 nginx日志在哪里
nginx日志保存路径,
是根据nginx配置文件中,
日志指令决定的,
如在上面的配置中,
access访问日志路径在 logs/access.log
nginx 错误日志路径在 logs/error.log
logs目录是在你的nginx安装路径中,
如果你的nginx安装在/usr/local/nginx,
那么nginx日志就保存在 /usr/local/nginx/logs/ 目录下。
三、 清理nginx日志
如果你的网站流量很大,
或者时间长了,
nginx产生的日志文件会占用很大的空间,
需要清理nginx日志。
进入到保存nginx日志的路径,
使用下面命令查看日志占用空间大小,
ls -lh
nginx日志在哪里清理
备份后删除大日志
rm -f access.lgo
rm -f error.lgo
这里是单次手工清除nginx日志,
也可以写shell脚本,
对日志进行分割,定时清理。
四、 nginx日志切割,定时清理nginx日志shell脚本
nginx配置中,
是无法对nginx做切割,分割设置的,
需要写shell脚本,
再结合linux的crontab定时任务,
实现定时清理nginx日志功能,
下面是一个可以参考的shell脚本
nginx_log.sh
#!/bin/bash
#LOGS_PATH为日志存放路径
LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
#按天切割日志
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
#日志写入新文件,/usr/local/nginx/为nginx安装目录
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
#设置日志保留时间 单位(天)
SAVE_TIME=30
#删除超过时间的日志
#find ${LOGS_PATH}/ -mtime +${SAVE_TIME} -name \*.log |xargs rm -rf {}
你可以根据自己的情况,
设置 SAVE_TIME 的值,
完成自动删除7天前,30天前,60天前,90天前,半年前的nginx日志。
添加linux系统定时任务
crontab -e
每天0点1分切割日志
01 00 * * * /usr/local/nginx/logs/nginx_log.sh
评论已关闭