1. 程式人生 > >Apache訪問日誌、訪問日誌不記錄靜態文件、訪問日誌切割

Apache訪問日誌、訪問日誌不記錄靜態文件、訪問日誌切割

Apache訪問日誌 訪問日誌不記錄靜態文件 訪問日誌切割

1、Apache 訪問日誌

技術分享圖片

輸入命令 cat /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
技術分享圖片
這個虛擬機的訪問日誌就在 /logs/111.com-access_log 裏面,輸入命令 ls /usr/local/apache2.4/logs/ ,可以看到訪問日誌文件,見下圖,
技術分享圖片
可以使用命令 cat /usr/local/apache2.4/logs/111.com-access_log,查看一下內容,回車,見下圖,
技術分享圖片
這邊顯示的日誌太簡單,看不出什麽重要信息,可以定義一下日誌的格式,打開主配置文件,輸入命令 vim /usr/local/apache2.4/conf/httpd.conf,回車,搜索 /LogFormat,見下圖,

技術分享圖片
LogFormat 後面就是日誌的格式,後面白色單詞為 common 的是默認格式。上一行的 User-Agent,是用戶代理的意思,例如瀏覽器和curl。Referer 表示在瀏覽器上記錄上一次訪問的網址。現在更改虛擬主機配置文件,輸入 :q!,回車,強制退出上圖界面。輸入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
技術分享圖片
更改上圖紅色框框的內容為 combined,保存並退出。接著往下操作,
技術分享圖片
然後用瀏覽器訪問 111.com/123.php ,見下圖,
技術分享圖片
接著回到 putty ,輸入命令 cat /usr/local/apache2.4/logs/111.com-access_log,查看最後幾行,見下圖,
技術分享圖片
明顯比之前的豐富。

2、訪問日誌不記錄靜態文件

技術分享圖片

現在登錄一個網站,按F12(筆記本電腦按Fn+F12),右側就會出現一個界面,見下圖,
技術分享圖片
選擇 Network 頁面,再刷新網頁,就能看到下圖界面,
技術分享圖片
可以看到,訪問的是一個網站,但是加載的東西卻非常多。每一行都表示一個元素,這些請求和訪問都會被記錄在訪問日誌裏。把鼠標放在行項目上就顯示一個地址,點擊進去也可以看到地址,見下圖,
技術分享圖片
這個地址就是一個請求,會被記錄在訪問日誌裏。如果每一條都記錄在日誌裏的話,產生的內容會非常多,占用的內存也非常大,這明顯是不合理的。所以需要更改配置文件,將圖片、css、js等內容排除掉,不做記錄。接下來更改虛擬主機的配置文件,輸入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,

技術分享圖片
在上圖紅色框框的位置,插入以下內容:
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,回車,見下圖,
技術分享圖片
aghjkk.jpg 是不存在的文件,隨機填寫的。查看日誌的時候,還能看到這條 jpg 的記錄。接著重新加載配配置文件,見下圖,
技術分享圖片
來檢查一下 jpg 和 png,是否有記錄,具體操作見下圖,
技術分享圖片
技術分享圖片
技術分享圖片
可以看到,jpg5 有記錄,jpg 和 png 都沒有記錄。
圖片使用 putty 上傳比較麻煩,這邊不演示了。
使用命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
技術分享圖片
將 env=!img 這些字符,刪除掉,保存並退出。重新加載一下配置文件,接著訪問 jpg、png,見下圖,
技術分享圖片
技術分享圖片
可以看到刪除 env=!img,訪問 jpg、png 都會被記錄。驗證這一點後,再把 env=!img 加上去,這邊不演示了。
需要註意的是 img 這個名字是隨意的,取名 lys 也是可以的。

3、訪問日誌切割

技術分享圖片

輸入命令 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,回車,見下圖,
技術分享圖片
更改上圖紅色框框的內容,保存並退出。rotatelogs 是 apache 自帶的切割工具,-l 以當前系統的時間(CST)為基準,不指定 -l 就會以 UTC 時間為基準切割日誌。再定義一下日誌的名字,%Y%m%d 表示年月日。然後定義切割一次的時間,一般是一天,換算成秒就是 86400。
重新加載配置文件,見下圖,
技術分享圖片
現在還沒有日誌生成,要做一些訪問,才可以看到訪問日誌,見下圖,
技術分享圖片
可以看到訪問日誌裏面,就是剛剛訪問的那一條。接著驗證,見下圖,
技術分享圖片
現在的日誌是每天一個,還需要做一個計劃,把超過一個月或是兩個月的日誌刪除掉,這樣才不會占用空間,並且讓日誌切割變的有意義,查找的時候也會很方便。

Apache訪問日誌、訪問日誌不記錄靜態文件、訪問日誌切割