Nginx初学(三)日志的配置

1、进入到nginx的日志目录,我们可以看到下图的三个文件

 其中nginx.pid中存放的是进程号,access.log是访问日志,error是错误日志。

2、我们打开配置文件,可以设置自己的日志文件。如下,配置好后保存,重启nginx。

 server {
        listen       8000;
        server_name  www.wuaipic.cn;

        location / {
            root   wuaipic;
            index  index.html index.htm;
        }
        access_log  logs/wuaipic.log  main;
    }

注:其中 main就是定义的日志的格式

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

3、重启nginx后,我们在访问www.wuaipic.cn的时候就会创建一个wuaipic.log文件,并且里面记录了我们的访问日志。

 下图为日志文件内容。

 

  4、我们还可以监控实时日志。输入命令

tail -n 100 -f wuaipic.log

这样,我们就可以实时查看日志了,按ctrl+z退出日志查看。

5、到此,日志的配置就完成了,当我们配置多个server的时候,就可以配置多个日志文件进行区分了。

6、当我们在查找错误的时候,需要进行日志的切分备份,那么我们就要写一个叫做  log.sh 的脚本来运行,进行日志切分备份。

BASE_DIR=/usr/local/nginx //基础目录
BASE_FILE_NAME=wuaipic.log  //要备份的文件

CURRENT_PATH=$BASE_DIR/logs
BAK_PATH=$BASE_DIR/datalogs  //备份路径

CURRENT_FILE=$CURRENT_PATH/$BASE_FILE_NAME
BAK_TIME=`/bin/date -d yesterday +%Y%m%d%H%M`  //备份时间
BAK_FILE=$BAK_PATH/$BAK_TIME-$BASE_FILE_NAME
echo $BAK_FILE

$BASE_DIR/sbin/nginx -s stop  //停止nginx

mv $CURRENT_FILE $BAK_FILE  //移动备份文件到指定目录

$BASE_DIR/sbin/nginx   //启动nginx

这里我们设置的是每分钟备份一次    %Y%m%d%H%M`

创建好脚本之后我们把脚本移动到  /usr/local/nginx/sbin目录下,然后我们执行

chmod 777 log.sh

我们在/usr/local/nginx下创建 datalogs文件夹,执行  crontab -e 命令

然后输入:

*/1 * * * * sh /usr/local/nginx/sbin/log.sh

然后保存退出,这样,日志的剪切备份就开始了。进入datalogs文件夹 运行 ll命令进行查看,每分钟备份一次。

原文地址:https://www.cnblogs.com/hg1205/p/11768897.html