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

訪問日誌不記錄靜態文件

  • 網站大多元素爲靜態文件,如圖片、css、js等,這些元素能夠不用記錄
  • 把虛擬主機配置文件改爲以下:

<VirtualHost *:80>javascript

DocumentRoot "/data/wwwroot/www.123.com"css

ServerName www.123.comjava

ServerAlias 123.comapache

SetEnvIf Request_URI ".*\.gif$" imgvim

SetEnvIf Request_URI ".*\.jpg$" img瀏覽器

SetEnvIf Request_URI ".*\.png$" img緩存

SetEnvIf Request_URI ".*\.bmp$" imgapp

SetEnvIf Request_URI ".*\.swf$" imgcurl

SetEnvIf Request_URI ".*\.js$" img工具

SetEnvIf Request_URI ".*\.css$" img

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

</VirtualHost>

  • 從新加載配置文件 -t, graceful
  • mkdir /data/wwwroot/www.123.com/images //建立目錄,並在這目錄下上傳一個圖片
  • curl -x127.0.0.1:80 -I 123.com/images/123.jpg
  • tail /usr/local/apache2.4/logs/123.com-access_log

編輯虛擬主機配置文件vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

將全部的符合訪問圖片的請求,都不會記錄在日誌裏

在保存配置文件以後,加載配置文件

作個訪問測試,以jpg1結尾會記錄在日誌裏的,而jpg,png等是不記錄在日誌裏

模擬上傳一張圖片並訪問

切換到/data/wwwroot/111.com目錄下,上傳一張圖片

請求訪問圖片,在瀏覽器裏能夠訪問圖片

而在日誌裏沒有發現訪問百度圖片的記錄

若是修改虛擬主機配置文件,刪掉env=!img,刷新瀏覽器或者curl訪問圖片,日誌又會記錄

訪問日誌切割

  • 日誌一直記錄總有一天會把整個磁盤佔滿,因此有必要讓它自動切割,並刪除老的日誌文件
  • 把虛擬主機配置文件改爲以下:

<VirtualHost *:80>

DocumentRoot "/data/wwwroot/www.123.com"

ServerName www.123.com ServerAlias 123.com

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 "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400" combined env=!img

</VirtualHost>

  • 從新加載配置文件 -t, graceful
  • ls /usr/local/apache2.4/logs

打開配置文件,更改CustomLog,# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

 rotatelogs是Apache切割日誌的工具;-l表示使用系統時間(CST),若是不加-l選項,將以默認的時間(UTC)爲準;日誌文件名「%Y%m%d」表示年月日;時間間隔設定爲一天(86400s)

檢查配置文件語法,並從新加載配置文件

而後再curl訪問,就會生成一個以日期爲後綴的新的日誌文件

在之後的凌晨0點的時候,就會生成一個新的日誌;另外寫個任務計劃,超過一個月的日誌要刪除,防止磁盤寫滿

靜態元素過時時間

  • 瀏覽器訪問網站的圖片時會把靜態的文件緩存在本地電腦裏,這樣下次再訪問時就不用去遠程下載了

增長配置

<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>

  • 須要expires_module
  • curl測試,看cache-control: max-age

靜態文件:如圖片文件、css、js文件等

打開配置文件# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,增長配置

檢查是否存在語法錯誤,查看expire模塊是否打開,會發現expire模塊沒有打開

編輯主配置文件,搜索/expire,打開expire模塊(去掉註釋符)

加載配置文件,查看expire模塊

按ctrl+F5能夠強制刷新,把瀏覽器本地的緩存清空

用curl訪問圖片,mv baidu.png qq.png

注:公司的網站通常都會設置過時時間,比較好用

擴展

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

apache只記錄指定URI的日誌

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

apache 日誌切割問題

相關文章
相關標籤/搜索