1. 程式人生 > >4.16訪問日誌不記錄靜態文件,訪問日誌切割以及靜態元素過期時間

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

靜態元素過期時間 訪問日誌切割

訪問日誌不記錄靜態文件
一個網站會有很多元素,尤其是圖片、js、css等靜態文件非常多,每個用戶請求一個頁面都會訪問諸多的圖片,這些元素都會被記錄在日誌中,如果一個網站訪問量很大,那麽這些日誌會增長的非常快,這樣不僅會對服務器的磁盤造成影響,更會影響磁盤的讀寫速度。所以我們要限制這些驚天文件的記錄。

具體方法如下:
編輯配置文件vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
然後在ErrorLog "logs/111.com-error_log"的下面編輯如下文件
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
“.
.xxx$”其中xxx代表元素的格式,我們在編輯的時候只要將元素的格式以正則表達式表示出來就可以。
然後在 CustomLog "logs/123.com-access_log" combined加上nv=!img(排除帶img標識的文件。)
檢查語法錯誤-t 重新加載配置文件 , graceful

訪問日誌切割

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

首先打開配置文件,
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
然後更改 CustomLog這一段配置,首先我們先指定一個工具,rotatelogs,他是apache自帶的切割工具,它存在於/usr/local/apache2.4/bin/中。其中參數-l是要它以當前系統時間為準,如果不加-l,它則以UTC時間為準。

然後在系統文件名access_加一個變量,%Y%m%d.log這是以年月日的格式命名的。既然我們是按照一天的時間來切割,然後我們換算成秒的話就是86400秒。日期格式可以用分隔符隔開。

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400" combined env=!img

檢查語法錯誤 -t 重新加載配置文件 graceful

靜態元素過期時間

瀏覽器訪問網站的圖片時會把靜態的文件緩存在本地電腦裏,這樣下次再訪問時就不用去遠程下載了,而直接去電腦訪問電腦中的緩存,那麽到底能緩存多久呢?我們是可以控制這個時間,這也叫做緩存過期時間。

首先我們打開配置文件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" ExpiresDefault "now plus 0 min"
重新加載配置文件 -t, graceful

然後我們去查看模塊有沒有打開
/usr/local/apache2.4/bin/apachectl -M|grep expire
如果沒有打開的話,我們去編輯主配置文件,然偶找到
LoadModule expires_module modules/mod_expires.so這個文件,並將前面的“#”刪掉。
然後重新加載
/usr/local/apache2.4/conf/httpd.conf graceful
再一次查找模塊
[root@linletao-001 ~]# /usr/local/apache2.4/bin/apachectl -M|grep expires
expires_module (shared)(已經加載模塊成功)
重新加載配置文件 -t, graceful

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