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,這就是過時時間

相關文章
相關標籤/搜索