1. 程式人生 > >2018-5-30

2018-5-30

日誌

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

11.23 訪問日誌切割

11.24 靜態元素過期時間



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

網站大多元素為靜態文件,如圖片、css、js等,這些元素可以不用記錄(占用日誌文件,耗費磁盤io)h

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

技術分享圖片

在customlog上定義

SetEnvIf Request_URI ".*\.gif$" img //如果訪問Re..-URI 這樣的請求

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 //符合上面條件的都不會記錄,img除外的日誌才記錄


重新加載配置文件 -t, graceful

mkdir /data/wwwroot/www.111.com/images //創建目錄,並在這目錄下上傳一個圖片

curl -x127.0.0.1:80 -I 111.com/images/111.jpg //記錄裏不會顯示

tail /usr/local/apache2.4/logs/111.com-access_log




11.23 訪問日誌切割

日誌一直記錄總有一天會把整個磁盤占滿,所以有必要讓它自動切割,並刪除老的日誌文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

配置如下

<VirtualHost *:80>

DocumentRoot "/data/wwwroot/111.com"

ServerName 111.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/111.com-access_%Y%m%d.log 86400" combined env=!img

重新加載配置文件 -t, graceful

ls /usr/local/apache2.4/logs



做日誌切割的目的是為了防止磁盤寫滿,也更方便管理





11.24 靜態元素過期時間

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

因此定義緩存時間,一定時間內清空這些緩存文件。

配置

<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


2018-5-30