訪問日志不記錄靜態(tài)文件 介紹

這部分相當于apache配置訪問日志的延伸。上節(jié)我們說到配置訪問日志,它會記錄很多東西,如訪客來源操作什么的。比如訪客查看了一張圖片,日志就會記錄下“訪客查看了這張圖片”這個信息。有得網(wǎng)頁,頁就有幾百張圖片,這樣都記錄下來,放到我們服務(wù)器上負擔太大,而且這些信息多余我們來說意義不大。所以這一節(jié),我們的需求就是,在記錄日志的同時,過忽略這些意義不大的文件日志
具體操作#進入配置文件、如果 [root@centos001 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf #配置文件如下 <VirtualHost *:80> DocumentRoot "/data/wwroot/111.com" ServerAlias www.example.com 211.com ServerName 111.com <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^111.com$ RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] </IfModule> 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 CustomLog "logs/111.com-access_log" combined env=!img//該處最后一段表示不要img結(jié)尾的 </VirtualHost> 實驗
訪問網(wǎng)站的一張圖片,不管有沒有,然后查看訪問日志
現(xiàn)在我們還沒有重啟服務(wù),所以剛才配置的文件還沒有生效
#訪問網(wǎng)站,這個圖片有沒有都可以,顯示404,因為我們本身就沒有這個文件 [root@centos001 ~]# curl -x192.168.10.120:80 111.com/sdafh.jpg -I HTTP/1.1 404 Not Found Date: Wed, 27 Dec 2017 14:14:50 GMT Server: Apache/2.4.29 (Unix) PHP/7.1.6 Content-Type: text/html; charset=iso-8859-1 #查看訪問日志 [root@centos001 ~]# tail /usr/local/apache2.4/logs/111.com-access_log #輸出 192.168.10.120 - - [27/Dec/2017:22:14:50 +0800] "HEAD HTTP://111.com/sdafh.jpg HTTP/1.1" 404 - "-" "curl/7.29.0" #這里能看到訪問日志里記錄了,訪客查看了圖片的這個信息
2.檢查并重啟服務(wù)
[root@centos001 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@centos001 ~]# /usr/local/apache2.4/bin/apachectl graceful
測試
用再次訪問圖片,檢查訪問日志有沒有記錄。因為我們的配置文件寫了不要jpg結(jié)尾的文件,后面的到的結(jié)果當然是沒有了
#進入配置文件 [root@centos001 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf #修改的部分,保存并退出 CustomLog ""|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access__%Y%m%d.log 86400" combined env=!img
解說
|/usr/local/apache2.4/bin/rotatelogs 指定一個叫rotatelogs的日志切割工具(httpd自帶的);
-l意為以當前系統(tǒng)的時間為基準,如若不指定將會以UTC(美國時間)的時間去指定,中國是CST(date能看到);
access__%Y%m%d.log 86400為日志的名字,%Y%m%d為年月日,86400為一天總的秒數(shù)(寫的時候前面往加空格,后面就沒有生成新的文件)
2.檢查讀寫并重啟服務(wù),
[root@centos001 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf [root@centos001 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@centos001 ~]# /usr/local/apache2.4/bin/apachectl graceful
3.測試 查看訪問日志有沒有被切割,也就是生成有日期的文件
#訪問一個php文件,圖片什么的沒有記錄 [root@centos001 ~]# curl -x192.168.10.120:80 111.com/123.php #下面ls前面沒有]是因為我們進入了網(wǎng)站文件中,也能看到生成了新的文件 123.com[root@centos0ls /usr/local/apache2.4/logs/ 111.com-access__20171228.log 111.com-error_log abc.com-error_log error_log 111.com-access_log abc.com-access_log access_log httpd.pid ### 配置靜態(tài)元素過期時間 - 介紹 瀏覽器訪問網(wǎng)站的圖片時會把靜態(tài)的文件緩存在本地電腦里,這樣下次再訪問時就不用去遠程下載了,能讓我們訪問速度更快 - 目的 緩存總不能一直緩存吧,所有就有了“緩存過期時間”這個概念,這個過期時間實在服務(wù)上定義的,下面就將介紹怎么設(shè)置這個時間 -準備 1.在配置之前先看個東西,首先下載一個靜態(tài)元素(圖片什么的)到我們的服務(wù)器上 ```#進入服務(wù)器目錄 [root@centos001 ~]# cd /data/wwroot/111.com/ [root@centos001 111.com]# ls 123.php index.php #傳一張圖片到虛擬服務(wù)器上 [root@centos001 111.com]# rz #這里名字叫qq.png,最好先改個簡單點名字 [root@centos001 111.com]# ls 123.php index.php qq.png
2.用瀏覽器訪問我們的圖片,按f12后狀態(tài)碼為200;當我們刷新后狀態(tài)碼就變304了,304的意思是檢測到x我們訪問的圖片沒有被修改過,所以就不用在重服務(wù)器上下載圖片了。但是這樣圖片就一直緩存在我們電腦里了,所以接下來將給圖片配置失效時間
<IfModule mod_expires.c> ExpiresActive on //打開模塊開關(guān) #定義元素類型 和過期時間 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>
2.檢查讀寫、加載模塊后重啟服務(wù)
#檢查讀寫 [root@centos001 111.com]# /usr/local/apache2.4/bin/apachectl -t Syntax OK #檢查是否有加載模塊,明顯沒有 [root@centos001 111.com]# /usr/local/apache2.4/bin/apachectl -M |grep expire 編輯主配置文件并加載模塊
#進入主配置文件 [root@centos001 111.com]# vim /usr/local/apache2.4/conf/httpd.conf #重啟服務(wù) [root@centos001 111.com]# /usr/local/apache2.4/bin/apachectl graceful #檢查加載模塊成功 [root@centos001 111.com]# /usr/local/apache2.4/bin/apachectl -M |grep expire expires_module (shared) 測試 1.重新進入瀏覽器,訪問圖片,f12查看狀態(tài)碼,當然可以F5刷新一哈
現(xiàn)在能看到過期時間為1天,下面也有過期的具體時間
2.當然我們也能在虛擬機上直接訪問
[root@centos001 111.com]# curl -x192.168.10.120:80 111.com/qq.png -I HTTP/1.1 200 OK Date: Wed, 27 Dec 2017 17:43:36 GMT//當前時間 Server: Apache/2.4.29 (Unix) PHP/7.1.6 Last-Modified: Wed, 27 Dec 2017 16:41:20 GMT ETag: "e01-5615511a9ac00" Accept-Ranges: bytes Content-Length: 3585 Cache-Control: max-age=86400 //周期 Expires: Thu, 28 Dec 2017 17:43:36 GMT //過期時間 Content-Type: image/png
本文名稱:訪問日志不記錄靜態(tài)文件、訪問日志切割與靜態(tài)元素過期時間
本文路徑:http://chinadenli.net/article6/cjedog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、ChatGPT、建站公司、Google、品牌網(wǎng)站設(shè)計、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)