1. 程式人生 > >6.訪問日誌靜態文件,訪問日誌切割,靜態元素過期時間

6.訪問日誌靜態文件,訪問日誌切割,靜態元素過期時間

訪問日誌靜態文件;訪問日誌切割靜 靜態元素過期時間

[toc]

10.22 訪問日誌不記錄靜態文件

技術分享圖片

很多網站大多為靜態網頁,網頁內部的圖片、css文件等同樣有其網址鏈接,如果不設置,這些無效的信息也將被存入訪問日誌中,會導致訪問日誌文件大小快速增加,占用大量存儲空間。我們可以通過設置不記錄某些文件來減少無效信息,節省內存資源。

1. 編輯虛擬主機配置文件

[root@xavi ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
</IfModule>

        ErrorLog "logs/xavi-error_log"
    #以下為定義變量:將所有關於圖片,css,js的請求定義為變量img     
    SetEnvIf Request_URI ".*\.gif$" img
    SetEnvIf Request_URI ".*\.jpg$" img
    SetEnvIf Request_URI ".*\.png$" img
    SetEnvIf Request_URI ".*\.bmp$" img
    SetEnvIf Request_URI ".*\.swf$" img
    SetEnvIf Request_URI ".*\.js$" img
    SetEnvIf Request_URI ".*\.css$" img
    # "env=!img"表示非img變量。意思是:不記錄關於變量img的請求日誌
CustomLog "logs/xavi-access_log" combined env=!img
</VirtualHost>

將所有訪問圖片的請求定義為變量img,在訪問記錄(日誌)中將其排除即可。重新加載後使用curl訪問img變量中所指定格式的文件內容時將不會產生訪問記錄。img是變量。

11.23 訪問日誌切割

日誌一直記錄總有一天會把整個磁盤占滿,所以有必要讓它自動切割,並刪除老的日誌文件

1.把虛擬主機配置文件改成如下:

   </IfModule>

        ErrorLog "logs/xavi-error_log"

    SetEnvIf Request_URI ".*\.gif$" img
    SetEnvIf Request_URI ".*\.jpg$" img
    SetEnvIf Request_URI ".*\.png$" img
    SetEnvIf Request_URI ".*\.bmp$" img
    SetEnvIf Request_URI ".*\.swf$" img
    SetEnvIf Request_URI ".*\.js$" img
    SetEnvIf Request_URI ".*\.css$" img

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/xavi.com-access_%Y%m%d.log 86400"  combined env=!img
</VirtualHost>

技術分享圖片

CustomLog "|/usr/local/apache2/bin/rotatelogs -l logs/123test-access_log_%Y%m%d_log 86400" combined env=!img
# /usr/local/apache2.4/bin/rotatelogs工具是apache自帶的分割日誌的工具
# -l參數按當前系統時間為基準進行切割(我國為CST),否則默認UTC
# %Y%m%d表示年月日,這樣會每天記錄一個帶日期的日誌文件,更方便
# 86400(s)表示每天都進行切割,一天24小時等於86400秒

curl訪問後有日誌文件生成

技術分享圖片

[root@xavi ~]# ls /usr/local/apache2.4/logs/xavi.com-access_20180307.log
/usr/local/apache2.4/logs/xavi.com-access_20180307.log
[root@xavi ~]# cat !$
cat /usr/local/apache2.4/logs/xavi.com-access_20180307.log
127.0.0.1 - - [07/Mar/2018:23:14:45 +0800] "GET HTTP://xavi.com/123.php HTTP/1.1" 200 7 "-" "curl/7.29.0"

11.24 靜態元素過期時間

瀏覽器訪問網站的圖片時會把靜態的文件緩存在本地電腦裏,這樣下次再訪問時就不用去遠程下載了。

但是緩存多久呢?如果網站圖片更新了呢,那麽應該訪問新圖片才是。所以這就涉及到靜態文件緩存時長的問題了,也就是“緩存過期時間”。

技術分享圖片

1.啟用expires模塊

[root@xavi logs]# vim /usr/local/apache2.4/conf/httpd.conf
LoadModule expires_module modules/mod_expires.so   //去掉#

2.修改虛擬主機配置文件

[root@xavi logs]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf  //增加以下內容

<IfModule mod_expires.c>
    ExpiresActive on  //打開該功能的開關
    ExpiresByType image/gif  "access plus 1 days"
    ExpiresByType image/jpeg "access plus 24 hours"
    ExpiresByType image/png "access plus 24 hours"
    ExpiresByType text/css "now plus 2 hour"
    ExpiresByType application/x-javascript "now plus 2 hours"
    ExpiresByType application/javascript "now plus 2 hours"
    ExpiresByType application/x-shockwave-flash "now plus 2 hours"

// 按文件類型來設置自定義過期時間
// acess表示從訪問時間開始
// now表示按當前時間開始
// plus在前面的時間基礎上加上
// 1 hours/days 表示文件的生命周期
// 例如 acess plus 1 days 表示該文件從訪問的時間開始1天內有效,無需重新獲取

    ExpiresDefault "now plus 0 min"    
//除上述外的文件指定默認的過期時間

3.重新加載-t,grancful查看,檢查模塊是否加載

[root@xavi logs]# /usr/local/apache2.4/bin/apachectl -M | grep -i expire   //檢查模塊是否加載
 expires_module (shared)

4.測試

4.1 ctrl+F5 強制刷新

技術分享圖片

技術分享圖片

6.訪問日誌靜態文件,訪問日誌切割,靜態元素過期時間