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

訪問日誌不記錄靜態文件

網站大多元素爲靜態文件,如圖片、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
相關文章
相關標籤/搜索