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

一、Apache 訪問日誌php

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訪問日誌、訪問日誌不記錄靜態文件、訪問日誌切割
明顯比以前的豐富。css

二、訪問日誌不記錄靜態文件正則表達式

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 也是能夠的。apache

三、訪問日誌切割vim

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

相關文章
相關標籤/搜索