標籤:日誌切割 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$" image-request
SetEnvIf Request_URI ".*\.jpg$" image-request
SetEnvIf Request_URI ".*\.png$" image-request
SetEnvIf Request_URI ".*\.bmp$" image-request
SetEnvIf Request_URI ".*\.swf$" image-request
SetEnvIf Request_URI ".*\.js$" image-request
SetEnvIf Request_URI ".*\.css$" image-request
CustomLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/test-access_%Y%m%d.log 86400" combined env=!image-request
本文出自 “Liew” 部落格,請務必保留此出處http://walterliew.blog.51cto.com/11286797/1883747
Apache日誌最佳化