LNMP架构(三)

一 Nginx访问日志

1.日志格式    css

    同httpd同样,nginx日志的格式也在主配置文件中设置,若是要更改日志格式,须要编辑主配置文件html

    # /usr/local/nginx/conf/nginx.confnginx

    找到下图中log_formartshell

    其中combined_realip是日志格式的名字,能够随便定义,这里的名字是什么,后面引用就用什么名字apache

二、参数解析vim

    $remote_addrbash

    $http_x_forwarded_for工具

    $time_local
    $host测试

    $request_uri   uri就是访问网站的网址域名后面的部分网站

    $status
    $http_referer

    $http_user_agent

三、编辑虚拟主机配置文件

        # vim /usr/local/nginx/conf/vhost/test.com.conf

    在此文件中加入如下内容:

    access_log    /tmp/1.log     combined_realip;

    

    其中,access_log表示定义的是访问日志的路径,/tmp/1.log表示访问日志存放路径,combined_realip是以前在主配置文件中定义的日志格式的名字,若是不定义日志的格式就会使用系统默认的日志格式,系统默认的日志格式会比较简单。

四、检测语法错误并从新加载

    # /usr/local/nginx/sbin/nginx -t

    # /usr/local/nginx/sbin/nginx -s reload

五、测试并查看访问日志

    访问test3.com/wrwer/err

     访问test2.com/wrwer/err

    如今来查看访问日志

 

二 Nginx日志切割

    Nginx不像apache同样带有日志切割工具,因此Nginx切割日志须要使用到系统的日志切割工具或者本身写切割的脚本,下面咱们使用本身写的脚原本切割日志

一、建立脚本

    咱们将全部的脚本放在/usr/local/sbin/目录下

    # vim /usr/local/sbin/nginx_logrotate.sh

    在脚本中写入如下内容:

#! /bin/bash

d=`date -d "-1 day" +%Y%m%d`    //date -d "-1 day" +%Y%m%d是一个日期,而且是当前时间的头一天

logdir="/tmp/"     // 假设nginx的日志存放路径为/tmp/

nginx_pid="/usr/local/nginx/logs/nginx.pid"  //此处找到的pid是为了执行代码的最后一行

cd $logdir   //进入到日志目录下

for log in `ls *.log`  //循环查找以*.log为文件名的日志文件

do  //执行下面的操做

    mv $log $log-$d  //将找到的文件名字后面加上日期

done

/bin/kill -HUP `cat $nginx_pid`   //这行代码的目的和nginx -s reload是同样的,由于日志被切割后,存放日志的文件发生了变化,须要从新加载一下配置文件

二、执行脚本

    # sh  -x   /usr/local/sbin/nginx_logrotate.sh

    使用sh命令就能够执行脚本,其中-x表示查看脚本执行过程

三、删除日志

    # find /tmp/ -name *.log-* -type f -mtime +30 |xargs rm

    查找到30天之前的文件名为*.log-*的文件执行删除操做

四、任务计划

    写完shell脚本之后咱们还须要作任务计划

    # crontab -e  

    执行上面命令后会弹出如下界面

    

    咱们在这个文件中写任务计划并保存就能够了。

    任务计划代码以下:

        0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh

    表示在天天凌晨0点执行日志切割

三 静态文件不记录日志和过时时间

一、编辑虚拟主机配置文件

    # vim /usr/local/nginx/conf/vhost/test.com.conf

    在配置文件中加入如下内容:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

    {

          expires      7d;  //过时时间为7天

          access_log off;

    }

location ~ .*\.(js|css)$

    {

          expires      12h;   //过时时间为12小时

          access_log off;

    }

二、检测语法错误并从新加载配置文件

    # /usr/local/nginx/sbin/nginx -t

    # /usr/local/nginx/sbin/nginx -s reload

三、访问测试验证

    访问图片

    访问js文件

    访问html页面

    再来查看访问日志,能够看到只记录了访问html页面的日志

    加上-I选项来访问js文件,能够看到有一个max-age,这就是过时时间

相关文章
相关标签/搜索