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


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