1. 程式人生 > >apache2.4配置訪問日誌分割並過濾圖片CSS等無用內容

apache2.4配置訪問日誌分割並過濾圖片CSS等無用內容

相關資訊

1.apache日誌有訪問日誌和錯誤日誌,錯誤日誌根據日誌級別來輸出錯誤資訊,而訪問日誌根據定義的日誌格式來記錄訪問動作

2.訪問日誌格式在httpd.conf檔案裡面定義,在虛擬主機裡面引用

3.如果網站訪問量大,那麼很容易造成訪問日誌過大,所以對訪問日誌進行自動切割非常有必要

4.本篇日誌使用的日誌分割工具是apache自己的rotatelogs工具

思路:在httd.conf中選擇合適自己的日誌格式>在虛擬主機的配置檔案裡引用並分割

第一:選擇合適的日誌格式

①開啟httpd.conf檔案

vim /usr/local/apache/conf/httpd.conf

  ②找到<If Module log_config_module>標籤,內容如下(後面的文字是解釋內容):

ErrorLog "logs/error_log" 錯誤日誌
LogLevel warn 警告級別為warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 複合日誌格式
LogFormat "%h %l %u %t \"%r\" %>s %b" common 常規日誌格式
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O
" combinedio 複合日誌格式 </IfModule> CustomLog "logs/access_log" common 預設訪問日誌存放路徑和格式,如果虛擬主機中不定義的話就是用這個 </IfModule>

 我們使用的是如下這個日誌格式,因為這個格式記錄的東西比較豐富

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 複合日誌格式

 第二:在虛擬主機中配置日誌格式並切割

 ①:開啟虛擬主機配置檔案

vim /usr/local/apache/conf/extra/httpd_vhosts.conf

②:註釋掉原來的內容

#CustomLog "logs/dummy-host.example.com-access_log" common

③:插入如下程式碼

 CustomLog "|/usr/local/apache/bin/rotatelogs -l logs/discuz.expeak.com-access_%Y%m%d.log 86400" combined env=!paichu

 |/usr/local/apache/bin/rotatelogs 指定使用rotatelogs工具 ,-l 引數是指定訪問日誌存放路徑, %Y%m%d 是日誌以年月日來命名, 86400 是秒,換算過來也就是一天,也就是說一天切割一次日誌。 combined 是日誌格式,也就是說使用combined這個日誌格式來記錄日誌。

擴充套件內容:排除圖片和css、js等內容的日誌記錄

說明:預設的日誌會記錄所有訪問內容,包括各種圖片、css、js等,那如何過濾掉這些內容的,請看下面:

①在虛擬主機標籤中設定要排除的內容(後面的文字是解釋)

SetEnvIf Request_URI "\.(gif|jpg|png|css|js)$" paichu   匹配所有請求中包含.gif.jpg.png.css.js的內容,起名字為paichu

 ②在日誌設定語句中新增排除

CustomLog "|/usr/local/apache/bin/rotatelogs -l logs/discuz.expeak.com-access_%Y%m%d.log 86400" combined env=!paichu

   env=!paichu 的中!是否定的意思,也就是不等於排除