天天看點

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

1、Apache 通路日志

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

輸入指令 cat /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

這個虛拟機的通路日志就在 /logs/111.com-access_log 裡面,輸入指令 ls /usr/local/apache2.4/logs/ ,可以看到通路日志檔案,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

可以使用指令 cat /usr/local/apache2.4/logs/111.com-access_log,檢視一下内容,回車,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

這邊顯示的日志太簡單,看不出什麼重要資訊,可以定義一下日志的格式,打開主配置檔案,輸入指令 vim /usr/local/apache2.4/conf/httpd.conf,回車,搜尋 /LogFormat,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

LogFormat 後面就是日志的格式,後面白色單詞為 common 的是預設格式。上一行的 User-Agent,是使用者代理的意思,例如浏覽器和curl。Referer 表示在浏覽器上記錄上一次通路的網址。現在更改虛拟主機配置檔案,輸入 :q!,回車,強制退出上圖界面。輸入指令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

更改上圖紅色框框的内容為 combined,儲存并退出。接着往下操作,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

然後用浏覽器通路 111.com/123.php ,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

接着回到 putty ,輸入指令 cat /usr/local/apache2.4/logs/111.com-access_log,檢視最後幾行,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

明顯比之前的豐富。

2、通路日志不記錄靜态檔案

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

現在登入一個網站,按F12(筆記本電腦按Fn+F12),右側就會出現一個界面,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

選擇 Network 頁面,再重新整理網頁,就能看到下圖界面,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

可以看到,通路的是一個網站,但是加載的東西卻非常多。每一行都表示一個元素,這些請求和通路都會被記錄在通路日志裡。把滑鼠放在行項目上就顯示一個位址,點選進去也可以看到位址,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

這個位址就是一個請求,會被記錄在通路日志裡。如果每一條都記錄在日志裡的話,産生的内容會非常多,占用的記憶體也非常大,這明顯是不合理的。是以需要更改配置檔案,将圖檔、css、js等内容排除掉,不做記錄。接下來更改虛拟主機的配置檔案,輸入指令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

在上圖紅色框框的位置,插入以下内容:

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 是标記,env=!img 意思為将标記為 img 的内容都不做記錄。

這邊先不重新加載配置檔案,也就是說剛剛更改的内容暫不生效,先做 一個實驗,輸入指令 curl -x127.0.0.1:80 111.com/aghjkk.jpg -I,回車,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

aghjkk.jpg 是不存在的檔案,随機填寫的。檢視日志的時候,還能看到這條 jpg 的記錄。接着重新加載配配置檔案,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

來檢查一下 jpg 和 png,是否有記錄,具體操作見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割
Apache通路日志、通路日志不記錄靜态檔案、通路日志切割
Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

可以看到,jpg5 有記錄,jpg 和 png 都沒有記錄。

圖檔使用 putty 上傳比較麻煩,這邊不示範了。

使用指令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

将 env=!img 這些字元,删除掉,儲存并退出。重新加載一下配置檔案,接着通路 jpg、png,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割
Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

可以看到删除 env=!img,通路 jpg、png 都會被記錄。驗證這一點後,再把 env=!img 加上去,這邊不示範了。

需要注意的是 img 這個名字是随意的,取名 lys 也是可以的。

3、通路日志切割

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

輸入指令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

更改上圖紅色框框的内容,儲存并退出。rotatelogs 是 apache 自帶的切割工具,-l 以目前系統的時間(CST)為基準,不指定 -l 就會以 UTC 時間為基準切割日志。再定義一下日志的名字,%Y%m%d 表示年月日。然後定義切割一次的時間,一般是一天,換算成秒就是 86400。

重新加載配置檔案,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

現在還沒有日志生成,要做一些通路,才可以看到通路日志,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

可以看到通路日志裡面,就是剛剛通路的那一條。接着驗證,見下圖,

Apache通路日志、通路日志不記錄靜态檔案、通路日志切割

現在的日志是每天一個,還需要做一個計劃,把超過一個月或是兩個月的日志删除掉,這樣才不會占用空間,并且讓日志切割變的有意義,查找的時候也會很友善。