網站大多元素爲靜態文件,如圖片、css、js等,這些元素能夠不用記錄
若是一個網站訪問量特別大,那麼訪問日誌就會不少,但有一些訪問日誌咱們實際上是能夠忽略掉的,好比網站的一些圖片,還有js、css等靜態對象。而這些文件的訪問每每是巨量的,每訪問一次就記錄一次,這些請求會包含不少圖片,JS,CSS等,會佔用磁盤空間和耗費IO,並且即便記錄這些日誌也沒有什麼用,那麼如何忽略不記錄這些日誌呢?javascript
配置日誌不記錄圖片的訪問
• 把虛擬主機配置文件改爲以下:css
<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 "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_logjava
日誌一直記錄總有一天會把整個磁盤佔滿,因此有必要讓它自動切割,並刪除老的日誌文件
apache自帶日誌切割功能rotatelogs
• 把虛擬主機配置文件改爲以下:linux
<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/logsapache
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400" combined env=!img
解釋:
-l 以當前系統時間爲準,若是不加-l utc的格式去切割,中國的是ctu格式。
%Y%m%d :年月日
86400秒,一天的時間
這樣設置後,天天就會生成一個日誌,咱們能夠作一個計劃任務,將1個月之前的文件刪除。vim
•瀏覽器訪問網站的圖片時會把靜態的文件緩存在本地電腦裏,這樣下次再訪問時就不用去遠程下載了
常識:咱們在瀏覽器去訪問一個網站的時候,這個網站有不少圖片,瀏覽器會默認把這些圖片緩存到本地電腦上去,這就是一個臨時的緩存目錄,那到底緩存多長時間呢,是在服務器上定義的。
通常公司的網站都會設置這個功能
ctrl +f5 強制刷新頁面,清楚緩存瀏覽器
• 增長配置緩存
<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
查看主配置文件中expires_module是否打開服務器
[root@linux-129 ~]# vim /usr/local/apache2.4/conf/httpd.conf LoadModule expires_module modules/mod_expires.so
• 加載配置app
[root@linux-129 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@linux-129 ~]# /usr/local/apache2.4/bin/apachectl graceful
• curl測試,看cache-control: max-age
[root@linux-129 ~]# curl -x192.168.88.129:80 111.com/1.jpg -I HTTP/1.1 200 OK Date: Mon, 09 Apr 2018 05:07:44 GMT Server: Apache/2.4.29 (Unix) PHP/7.1.6 Last-Modified: Mon, 09 Apr 2018 04:20:10 GMT ETag: "646c7-56962b8baf9d1" Accept-Ranges: bytes Content-Length: 411335 Cache-Control: max-age=86400 Expires: Tue, 10 Apr 2018 05:07:44 GMT Content-Type: image/jpeg