11.22 訪問日志不記錄靜態文件 網站大多元素為靜態文件,如圖片、css、js等,這些元素可以不用記錄 小技巧: 打開瀏覽器,按鍵盤上的F12鍵,開發人員工具,選擇Network選項(一般默認),刷新網頁或打開新的頁面,如下圖所示: 在Name這列,有很多個元素,每個元素其實就代表著一個訪問請求,有請求,就有日志。一網站有很多元素組成,每一個元素記錄一條,那一天將近幾個G的日志文件。 把虛擬主機配置文件改成如下: #添加的參數SetEnvIf Request_URI ".*\.gif$" imgSetEnvIf Request_URI ".*\.jpg$" imgSetEnvIf Request_URI ".*\.png$" imgSetEnvIf Request_URI ".*\.bmp$" imgSetEnvIf Request_URI ".*\.swf$" imgSetEnvIf Request_URI ".*\.js$" imgSetEnvIf Request_URI ".*\.css$" imgCustomLog "logs/123.com-access_log" combined env=!img
#只要符合的請求,都不會記錄到日志里
截圖如下:
[root@taoyuan ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK[root@taoyuan ~]# /usr/local/apache2.4/bin/apachectl graceful
#可以上傳一張圖片,放在站點的目錄下,也可以在站點根目錄下創建images目錄用于存放圖片
[root@taoyuan 123.com]# ls
index.php qq.png
curl -x127.0.0.1:80 -I 123.com/qq.png [root@taoyuan ~]# curl -x127.0.0.1:80 123.com/adaffhgf -I
HTTP/1.1 404 Not Found
Date: Thu, 21 Dec 2017 14:12:39 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1#查看日志
[root@taoyuan ~]# tail /usr/local/apache2.4/logs/123.com-access_log 127.0.0.1 - - [21/Dec/2017:22:12:39 +0800] "HEAD HTTP://123.com/adaffhgf HTTP/1.1" 404 - "-" "curl/7.29.0"#執行*.jpg
[root@taoyuan ~]# curl -x127.0.0.1:80 123.com/adaffhgf.jpg -I
HTTP/1.1 404 Not Found
Date: Thu, 21 Dec 2017 14:14:54 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1#日志里沒有記錄
[root@taoyuan ~]# tail /usr/local/apache2.4/logs/123.com-access_log
127.0.0.1 - - [21/Dec/2017:22:12:39 +0800] "HEAD HTTP://123.com/adaffhgf HTTP/1.1" 404 - "-" "curl/7.29.0"#測試圖片
[root@taoyuan 123.com]# curl -x127.0.0.1:80 123.com/qq.png -I
HTTP/1.1 200 OK
Date: Thu, 21 Dec 2017 14:23:37 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Last-Modified: Thu, 21 Dec 2017 13:47:55 GMT
ETag: "193e-560d9f26db8c0"
Accept-Ranges: bytes
Content-Length: 6462
Content-Type: image/png
tail /usr/local/apache2.4/logs/123.com-access_log #查看日志
[root@taoyuan 123.com]# tail /usr/local/apache2.4/logs/123.com-access_log #沒有日志記錄,已經排除了
127.0.0.1 - - [21/Dec/2017:22:12:39 +0800] "HEAD HTTP://123.com/adaffhgf HTTP/1.1" 404 - "-" "curl/7.29.0"
11.23 訪問日志切割 日志一直記錄總有一天會把整個磁盤占滿,所有有必要讓它自動切割,并刪除老的日志文件 把虛擬主機配置文件改成如下: <VirtualHost *:80>DocumentRoot "/data/wwwroot/123.com"ServerName 123.comServerAlias www.123.cn www.123.comErrorLog "logs/123.com-error_log"SetEnvIf Request_URI ".*\.gif$" imgSetEnvIf Request_URI ".*\.jpg$" imgSetEnvIf Request_URI ".*\.png$" imgSetEnvIf Request_URI ".*\.bmp$" imgSetEnvIf Request_URI ".*\.swf$" imgSetEnvIf Request_URI ".*\.js$" imgSetEnvIf Request_URI ".*\.css$" imgCustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400" combined env=!img#CustomLog "logs/123.com-access_log" combined env=!img
</VirtualHost>#需要指定一個rotatelogs工具,是Apache自帶的一個日志切割工具。-l 是以時間切割為單位。
#86400 表示是多久切割的時間段
[root@taoyuan 123.com]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@taoyuan 123.com]# /usr/local/apache2.4/bin/apachectl graceful
ls /usr/local/apache2.4/logs #curl測試
[root@taoyuan 123.com]# curl -x127.0.0.1:80 123.com/12141 -I
HTTP/1.1 404 Not Found
Date: Thu, 21 Dec 2017 14:35:34 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1#查看文件
[root@taoyuan 123.com]# ls /usr/local/apache2.4/logs/
111.com-access_log 123.com-access_20171221.log 123.com-error_log error_log
111.com-error_log 123.com-access_log access_log httpd.pid
生成了一個123.com-access_20171221.log文件
注:在實際過程中,需要建立一個任務計劃,把一段時間的文件進行拷貝或刪除,以保證磁盤容量永遠是足夠的。
12.11.24 靜態元素過期時間 瀏覽器訪問網站的圖片時會把靜態的文件緩存在本地電腦里,這樣下次再訪問時就不用去遠程下載了 增加配置
<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>
截圖如下:
備注: 這部分配置用到了mod_expires模塊,相關配置內容并不難理解,通過字面也可以大致猜到其含義。這里gif、jpeg、png格式的文件過期時長為1天,css、js、flash格式的文件過期時長為2小時,其他文件過期時長為0。
#查看是否加載了expires_module 模塊
[root@taoyuan 123.com]# /usr/local/apache2.4/bin/apachectl -M|grep expire
#沒有加載模塊#編輯配置文件
[root@taoyuan 123.com]# vim /usr/local/apache2.4/conf/httpd.confLoadModule expires_module modules/mod_expires.so #去掉注釋[root@taoyuan 123.com]# /usr/local/apache2.4/bin/apachectl -M|grep expireexpires_module (shared)
curl 測試,看cache-control:max-age 沒有生效前的
[root@taoyuan 123.com]# curl -x127.0.0.1:80 123.com/qq.png -I
HTTP/1.1 200 OK
Date: Thu, 21 Dec 2017 14:59:48 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Last-Modified: Thu, 21 Dec 2017 13:47:55 GMT
ETag: "193e-560d9f26db8c0"
Accept-Ranges: bytes
Content-Length: 6462
Content-Type: image/png#生效之后的
[root@taoyuan 123.com]# curl -x127.0.0.1:80 123.com/qq.png -I
HTTP/1.1 200 OK
Date: Thu, 21 Dec 2017 15:03:51 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Last-Modified: Thu, 21 Dec 2017 13:47:55 GMT
ETag: "193e-560d9f26db8c0"
Accept-Ranges: bytes
Content-Length: 6462
Cache-Control: max-age=86400
Expires: Fri, 22 Dec 2017 15:03:51 GMT
Content-Type: image/png#多了cache-control參數等
瀏覽器結果如下:
按ctrl+f5 強制刷新
轉載于:https://blog.51cto.com/3622288/2053091
總結
以上是生活随笔 為你收集整理的访问日志不记录静态文件、访问日志切割、静态元素过期时间 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。