[toc]javascript
不少網站大多爲靜態網頁,網頁內部的圖片、css文件等一樣有其網址連接,若是不設置,這些無效的信息也將被存入訪問日誌中,會致使訪問日誌文件大小快速增長,佔用大量存儲空間。咱們能夠經過設置不記錄某些文件來減小無效信息,節省內存資源。php
[root@xavi ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> ServerAdmin xavi@xavi.com DocumentRoot "/data/wwwroot/xavi.com" ServerName www.xavi.com ServerAlias xavi.com 123.com #如下爲定義變量:將全部關於圖片,css,js的請求定義爲變量img SetEnvIf Request_URI ".*\.gif$" img // 定義元素爲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 ErrorLog "logs/xavi.com-error_log" CustomLog "logs/xavi.com-access_log" common env=!img //指定非img的文件才記錄日誌。 </VirtualHost>
將全部訪問圖片的請求定義爲變量img,在訪問記錄(日誌)中將其排除便可。從新加載後使用curl訪問img變量中所指定格式的文件內容時將不會產生訪問記錄。img是變量。css
/usr/local/apache2.4/bin/apachectl -t Syntax OK /usr/local/apache2.4/bin/apachectl graceful
再訪問網站下的圖片文件,查看日誌已不在記錄圖片的訪問日誌了。java
隨着網站訪問量的增大,咱們網站的訪問日誌文件也會變得很大,爲了保持磁盤空間,方便訪問日誌的管理(備份、刪除歷史日誌等。),咱們能夠進行日誌切割,天天的訪問日誌獨立切割出來。apache
在conf/extra/httpd-vhosts.conf/ 配置文件下進行設定:vim
[root@xavi ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> ServerAdmin xavi@xavi.com DocumentRoot "/data/wwwroot/xavi.com" ServerName www.xavi.com ServerAlias xavi.com 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 ErrorLog "logs/xavi.com-error_log" CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/xavi.com-access_%Y%m%d.log 86400" combined env=!img // 用命令的形式把日誌切割 </VirtualHost>
CustomLog "|/usr/local/apache2/bin/rotatelogs -l logs/123test-access_log_%Y%m%d_log 86400" combined env=!img # /usr/local/apache2.4/bin/rotatelogs工具是apache自帶的分割日誌的工具 # -l參數按當前系統時間爲基準進行切割(我國爲CST),不然默認UTC # %Y%m%d表示年月日,這樣會天天記錄一個帶日期的日誌文件,更方便 # 86400(s)表示天天都進行切割,一天24小時等於86400秒
curl訪問後有日誌文件生成瀏覽器
crontab -e緩存
[root@xavi ~]# ls /usr/local/apache2.4/logs/xavi.com-access_20180307.log /usr/local/apache2.4/logs/xavi.com-access_20180307.log [root@xavi ~]# cat !$ cat /usr/local/apache2.4/logs/xavi.com-access_20180307.log 127.0.0.1 - - [07/Mar/2018:23:14:45 +0800] "GET HTTP://xavi.com/123.php HTTP/1.1" 200 7 "-" "curl/7.29.0"
瀏覽器訪問網站的圖片時會把靜態的文件緩存在本地電腦裏,這樣下次再訪問時就不用去遠程下載了。app
可是緩存多久呢?若是網站圖片更新了呢,那麼應該訪問新圖片纔是。因此這就涉及到靜態文件緩存時長的問題了,也就是「緩存過時時間」。curl
[root@xavi logs]# vim /usr/local/apache2.4/conf/httpd.conf LoadModule expires_module modules/mod_expires.so //去掉#
[root@xavi logs]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //增長如下內容 <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" // 按文件類型來設置自定義過時時間 // acess表示從訪問時間開始 // now表示按當前時間開始 // plus在前面的時間基礎上加上 // 1 hours/days 表示文件的生命週期 // 例如 acess plus 1 days 表示該文件從訪問的時間開始1天內有效,無需從新獲取 ExpiresDefault "now plus 0 min" //除上述外的文件指定默認的過時時間
[root@xavi logs]# /usr/local/apache2.4/bin/apachectl -M | grep -i expire //檢查模塊是否加載 expires_module (shared)