天天看點

Apache日志優化

日志優化一般兩個方面,日志切割和不記錄指定類型日志,下面分别解釋實驗這兩類

Apache日志切割

這裡的日志指的是通路日志,每次通路都會産生數條日志,如果不去管理,時間久了,日志檔案會越來越大,難以檢視。是以我們将日志按照我們的需求進行歸檔,比如每天一個新日志。利用apache自帶的一個工具rotatelogs即可實作。

下面我們來配置一下,在對應的虛拟主機配置檔案中加入

# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

ErrorLog " /usr/local/apache2/logs/test-error_log"

CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test-

access_%Y%m%d.log 86400" combined

說明:上面是兩行,一定不要回車。Errorlog是錯誤日志,Customlog是通路日志。最前面的豎線即管道符,指把Customlog交給rtatelogs工具處理。-l的作用是校準時區為UTC,即中原標準時間。後面的86400,機關是秒,指一天。那麼日志會每一天切割一次。最後的combined是日志格式,在httpd.conf有日志格式的定義。

# grep LogFormat /usr/local/apache2/conf/httpd.conf

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b" common

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

Apache不記錄指定檔案類型日志

當一個站點的通路量很大時,通路日志會很多,但其實有一些通路日志并不需要記錄,比如網站的一些圖檔,還有js、css等靜态對象。

做下方的配置便可以實作上方的想法

#  vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

ErrorLog "/usr/local/apache/logs/test-error_%Y%m%d.log 86400"

    SetEnvIf Request_URI ".*\.gif$" p_w_picpath-request

    SetEnvIf Request_URI ".*\.jpg$" p_w_picpath-request

    SetEnvIf Request_URI ".*\.png$" p_w_picpath-request

    SetEnvIf Request_URI ".*\.bmp$" p_w_picpath-request

    SetEnvIf Request_URI ".*\.swf$" p_w_picpath-request

    SetEnvIf Request_URI ".*\.js$" p_w_picpath-request