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訪問日誌、訪問日誌不記錄靜態文件、訪問日誌切割
現在的日誌是每天一個,還需要做一個計劃,把超過一個月或是兩個月的日誌刪除掉,這樣纔不會佔用空間,並且讓日誌切割變的有意義,查找的時候也會很方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章