1. 程式人生 > >LAMP架構十( Apache訪問日誌不記錄靜態檔案)

LAMP架構十( Apache訪問日誌不記錄靜態檔案)

十、訪問日誌不記錄靜態檔案

        網站的頁面會有很多元素,尤其是圖片,js,css,等靜態元素非常多,每一次訪問都會訪問大量的靜態元素,這些元素請求都會被記錄在日誌中,因此日誌的增長速度非常快,然而記錄靜態元素的意義並不大,因此我們需要限制靜態元素的記錄,並且將日誌進行切割,並按天歸檔整理,防止單個日誌檔案過大。

        配置訪問日誌不記錄靜態檔案:

[[email protected] ~]# vim /etc/httpd/conf.d/virtual.conf
虛擬主機1增加日誌記錄規則:
<VirtualHost *:8090>                                                                              8090是http的服務埠,不用改。
 ServerAdmin

[email protected]                                                      網站管理員郵箱,設定成自己的網站
 DocumentRoot "/var/www/html/a"                                                          虛擬主機根目錄用於存放網站程式
    ServerName a.com                                                                             網站名,域名                  
    ServerAlias www.test.com                                                                   網站別名,域名別名,可寫多個要用空格隔開 
    <IfModule mod_rewrite.c>  
                                                                需要mod_rewrite模組支援
        RewriteEngine on                                                                            開啟rewrite功能
        RewriteCond %{HTTP_HOST} !^a.com$                                      將非a.com的域名請求跳轉至此
        RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]                   狀態碼301永久跳轉,L=last,跳一次
                                            定義跳轉規則,將以^/(.*)$開頭結尾的域名請求跳轉,$1代表^/(.*)$
    </IfModule>

    ErrorLog "logs/a.com-error_log"                                                 錯誤日誌儲存路徑
    SetEnvIf Request_URI ".*\.gif$" img                                            日誌記錄規則,變量表示.gif檔案
    SetEnvIf Request_URI ".*\.jpg$" img                                           日誌記錄規則,變量表示.jpg檔案
    SetEnvIf Request_URI ".*\.png$" img                                          日誌記錄規則,變量表示.png檔案
    SetEnvIf Request_URI ".*\.bmp$" img                                         日誌記錄規則,變量表示.bmp檔案
    SetEnvIf Request_URI ".*\.swf$" img                                           日誌記錄規則,變量表示.swf檔案
    SetEnvIf Request_URI ".*\.js$" img                                              日誌記錄規則,變量表示.js檔案
    SetEnvIf Request_URI ".*\.css$" img                                           日誌記錄規則,變量表示.cs檔案
    CustomLog "logs/a.com-access_log" combined env=!img 
</VirtualHost>                                   !取反,不記錄變數所表示的檔案訪問記錄,訪問日誌儲存路徑
 

測試語法並重新載入配置
[[email protected] conf.d]# /usr/sbin/apachectl -t
Syntax OK
[[email protected] conf.d]# /usr/sbin/apachectl  graceful

建立目錄,建立test.jpg圖片,並測試訪問
[[email protected] ~]# mkdir //var/www/html/a/images/
[[email protected] ~]# touch /var/www/html/a/images/test.jpg
[[email protected] ~]# curl -x127.0.0.1:80 -I a.com/images/test.jpg
 

修改前後日誌對比,修改後關於訪問jpg的日誌沒有被記錄。

修改前

修改後