nginx日志相关的配置 包括 access_log 、 log_format 、 open_log_file_cache 、 rewrite_log 、 error_log。我们经常用到的无法是 access_log 、 error_log、log_format这三个。log_format就是用来自定义nginx日志内容的。系统默认是combined。如果没有明确指定日志格式默认格式:
log_format combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';
如果不想使用Nginx预定义的格式,可以通过 log_format指令来自定义。但是这个指令的作用域我是参考官方配置,写在了http中。直接写在bt的配置文件中报错。只能写这里了。
[root@kkpan.com ~]# rpm -ql nginx |grep log /etc/logrotate.d/nginx /var/log/nginx [root@kkpan.com ~]# vim /etc/logrotate.d/nginx /var/log/nginx/*.log { #指定需要轮转处理的日志文件 daily #日志文件轮转周期,可用值为: daily/weekly/yearly missingok # 忽略错误信息 rotate 7 # 轮转次数,即多存储7个归档日志,会删除久的归档日志 minsize 5M #限制条件,大于5M的日志文件才进行分割,否则不操作 dateext # 以当前日期作为命名格式 compress # 轮循结束后,已归档日志使用gzip进行压缩 delaycompress # 与compress共用,近的一次归档不要压缩 notifempty # 日志文件为空,轮循不会继续执行 create 640 nginx nginx #新日志文件的权限 sharedscripts #有多个日志需要轮询时,只执行一次脚本 postrotate # 将日志文件转储后执行的命令。以endscript结尾,命令需要单独成行 if [ -f /var/run/nginx.pid ]; then #判断nginx的PID。# 默认logrotate会以 root身份运行 kill -USR1 cat /var/run/nginx.pid fi endscript }
[root@kkpan.com nginx]# /usr/sbin/logrotate -f /etc/logrotate.conf 创建计划任务: [root@kkpan.com nginx]# crontab -e 59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.conf