2018-3-5 10周4次課 訪問日誌不記錄靜態文件、訪問日誌切割、靜態元素過期時間
·網站大多元素為靜態文件,如圖片、css、js等,這些元素可以不用記錄
原因:如果不去限制,那麽會消耗大量的磁盤空間和IO,而且這些文件無意義。
編輯http-vhost配置文件:
[root@localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
在CustomLog之上加入內容,並且在CustomLog行加入!img,表示符合以上條件的都不加入到日誌中
(img可以用其他代替,只要和上方定義的名稱一致即可,如下圖)
因為沒有重置配置,所以配置暫未生效,此時訪問以.jpg結尾的請求
[root@localhost ~]# curl -x127.0.0.1:80 111.com/dsafas.jpg -I HTTP/1.1 404 Not Found Date: Sat, 03 Mar 2018 11:26:57 GMT Server: Apache/2.4.29 (Unix) PHP/7.1.6 Content-Type: text/html; charset=iso-8859-1
查看日誌文件,發現該訪問已經被記錄
[root@localhost ~]# tail /usr/local/apache2.4/logs/111.com-access_log
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful
重置配置之後,再次訪問一個.jpg結尾的請求
[root@localhost ~]# curl -x127.0.0.1:80 111.com/hhhhhh.jpg -I HTTP/1.1 404 Not Found Date: Sat, 03 Mar 2018 11:29:10 GMT Server: Apache/2.4.29 (Unix) PHP/7.1.6 Content-Type: text/html; charset=iso-8859-1
查看日誌文件,因為配置文件生效之後,就阻擋了以.jpg結尾的請求被記錄到日誌中去,因此,看不到該條訪問記錄。
[root@localhost ~]# tail /usr/local/apache2.4/logs/111.com-access_log
我們再去進行更多訪問的請求
查看日誌發現,僅僅記錄了以.xxx結尾的訪問,而之前.gif和之後.css則沒有記錄,正式因為配置文件中將這類訪問給定義為不需要記錄的。
訪問/data/wwwroot/111.com/中的一張圖片,不會被記錄到日誌中
[root@localhost ~]# curl -x127.0.0.1:80 111.com/gakki.jpg -I HTTP/1.1 200 OK Date: Sat, 03 Mar 2018 11:51:24 GMT Server: Apache/2.4.29 (Unix) PHP/7.1.6 Last-Modified: Sat, 03 Mar 2018 11:51:11 GMT ETag: "d275-56680b58abf85" Accept-Ranges: bytes Content-Length: 53877 Content-Type: image/jpeg
如果把配置文件中 env=!img 去掉,那麽日誌將會重新將原先不記錄的訪問進行記錄
保存後,瀏覽器訪問111.com/gakki.jpg,那麽該記錄會被記錄進日誌中
11.23 訪問日誌切割
·日誌一直記錄總有一天會把整個磁盤占滿,所以有必要讓它自動切割,並刪除老的日誌文件
作用:防止磁盤寫滿
需要用到 apache 自帶的 rotatelogs 切割工具
把虛擬主機配置文件改成如下:
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
|/usr/local/apache2.4/bin/rotatelogs rotatelogs工具
-l 以當前系統時間為基準,不然就以UTC為基準,中國是CST
logs logs目錄下
111.com-access_%Y%m%d.log 文件名 年 月 日
86400 規定切割時間,單位是秒,86400是一天
訪問111.com/123.php,會生成以日期為名稱的日誌文件
生成的新日誌文件內有最近的訪問記錄
11.24 靜態元素過期時間
·瀏覽器訪問網站的圖片時會把靜態的文件緩存在本地電腦裏,這樣下次再訪問時就不用去遠程下載了
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK
檢查expaire模塊是否打開,沒有打開的話,需要去主配置文件中打開
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -M | grep expire [root@localhost ~]# vim /usr/local/apache2.4/conf/httpd.conf
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -M | grep expire expires_module (shared)
(expire模塊打開並配置成功)
[root@localhost ~]# curl -x127.0.0.1:80 111.com/aragaki.jpg
(信息表明緩存最大保存時間以及失效GMT格林尼治時間,和北京時間8小時時差)
(只有在打開expire模塊時才能看到此信息)
如有錯誤,歡迎指正,互相學習,共同進步!
2018-3-5 10周4次課 訪問日誌不記錄靜態文件、訪問日誌切割、靜態元素過期時間