1. 程式人生 > >11.22 訪問日誌不記錄靜態文件;11.23 訪問日誌切割;11.24 靜態元素過期時間

11.22 訪問日誌不記錄靜態文件;11.23 訪問日誌切割;11.24 靜態元素過期時間

訪問日誌不記錄靜態文件 訪問日誌切割 靜態元素過期時間

擴展:

apache日誌記錄代理IP以及真實客戶端IP :

http://ask.apelearn.com/question/960

apache只記錄指定URI的日誌 :

http://ask.apelearn.com/question/981

apache日誌記錄客戶端請求的域名 :

http://ask.apelearn.com/question/1037

apache 日誌切割問題 :

http://ask.apelearn.com/question/566

11.22 訪問日誌不記錄靜態文件

? 網站大多元素為靜態文件,如圖片、css、js等,這些元素可以不用記錄

1. 編輯虛擬機配置文件,增加訪問日誌不記錄圖片靜態文件等規則:

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

增加內容(針對訪問日誌過濾掉圖片訪問):

SetEnvIf Request_URI ".*\.gif$" img

SetEnvIf Request_URI ".*\.jpg$" img

SetEnvIf Request_URI ".*\.png$" img

SetEnvIf Request_URI ".*\.bmp$" img

SetEnvIf Request_URI ".*\.swf$" img

SetEnvIf Request_URI ".*\.js$" img

SetEnvIf Request_URI ".*\.css$" img

CustomLog "logs/111.com-access_log" combined env=!img

技術分享圖片技術分享圖片

2. 檢測虛擬機配置文件是否有錯誤 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 啟動apache2.4/httpd

[root@hao-01 apache2.4]# /usr/local/apache2.4/bin/apachectl

start

4. 重新加載配置文件(不會重啟服務) :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful

5. 進入111網站目錄下 :

[root@hao-01 ~]# cd /data/wwwroot/111.com

6. window上傳一張圖片當前目錄下

[root@hao-01 111.com]# rz

7. curl命令訪問111.com下,圖片名稱地址,可以通(200 OK) :

[root@hao-01 111.com]# curl -x127.0.0.1:80 111.com/clipboard.png -I

技術分享圖片技術分享圖片

8. windows遊覽器中,不斷刷新訪問

111.com/clipboard.png

9.查看訪問日誌,沒有看到有 png格式的訪問日誌,這就是被過濾掉了不記錄!

[root@hao-01 111.com]# tail /usr/local/apache2.4/logs/111.com-access_log

11.23 訪問日誌切割

? 日誌一直記錄總有一天會把整個磁盤占滿,

所以有必要讓它自動切割,並刪除老的日誌文件

1. 編輯虛擬機配置文件,把日誌規定為以每天日期一個訪問日誌

[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

訪問日誌增加更改如下規則(設定日誌切割成多個文件):

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img

技術分享圖片技術分享圖片

2. 檢測虛擬機配置文件是否有錯誤 ?

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 重新加載配置文件(不會重啟服務) :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful

4. 用curl命令,訪問111.com網站下的123.php文件 :

[root@hao-01 ~]# curl -x127.0.0.1:80 111.com/123.php

5. 列出 apache訪問日誌目錄下全部日誌(可看到以日期命名的日誌) :

[root@hao-01 ~]# ls /usr/local/apache2.4/logs/

6. 查看剛剛訪問後,生成的日期命名的日誌內容(剛剛訪問123.php):

[root@hao-01 ~]# cat /usr/local/apache2.4/logs/123.php/111.com-access_20170801.log

技術分享圖片技術分享圖片

11.24 靜態元素過期時間

1. 修改虛擬主機配置文件,定義靜態圖片等元素過期時間 :

插入內容(靜態圖片等元素過期時間的定義) :

<IfModule mod_expires.c>

ExpiresActive on

ExpiresByType image/gif "access plus 1 days"

ExpiresByType image/jpeg "access plus 24 hours"

ExpiresByType image/png "access plus 24 hours"

ExpiresByType text/css "now plus 2 hour"

ExpiresByType application/x-javascript "now plus 2 hours"

ExpiresByType application/javascript "now plus 2 hours"

ExpiresByType application/x-shockwave-flash "now plus 2 hours"

ExpiresDefault "now plus 0 min"

</IfModule>

技術分享圖片技術分享圖片

2. 檢測虛擬機配置文件是否有錯誤 :

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t

3. 重新加載配置文件(不會重啟服務)

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful

4. 編輯apache主配置,打開含有expires這行(刪除這行前面的#號)

技術分享圖片技術分享圖片

5. 搜索apache,expire模塊是否打開 ?

[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -M |grep expire

技術分享圖片

技術分享圖片6. 用curl命令,訪問111.com目錄下的靜態圖片clipboard.php :

(顯示了當前訪問時間和緩存靜態過期時間,過期就會清理掉了)

[root@hao-01 ~]# curl -x127.0.0.1:80 111.com/clipboard.png -I

技術分享圖片技術分享圖片

11.22 訪問日誌不記錄靜態文件;11.23 訪問日誌切割;11.24 靜態元素過期時間