11.22 訪問日誌不記錄靜態文件

訪問日誌不記錄指定類型的文件目錄概要

  • 網站大多元素爲靜態文件,如圖片、css、js等,這些元素能夠不用記錄
  • 把虛擬主機配置文件改爲以下:
<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_log

訪問日誌不記錄指定類型的文件

  1. 瀏覽器能夠查看到頁面元素,按 F12 查看頁面元素內容,它默認定位在Network。若是不是在Network,就去選擇下Network,而後刷新下網頁,會看到如圖php

    輸入圖片說明

  2. 會看到右側出現不少的元素,每一行都表示一個元素,這些請求,這些訪問都會記錄到訪問日誌裏面去的,但實際上沒有必須記錄一些圖片、css、js等元素,而這些請求都會記錄到日誌文件裏,就會致使天天的日誌訪問量很大,對以後的運維很不方便,因此就有了需求,對於靜態的元素的uri 不進行記錄css

  3. 排除圖片、css、js等,拷貝配置文件到服務器裏面html

  • 須要拷貝的配置文件
<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>
  1. 打開虛擬主機配置文件
  • vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
  • 未更改前
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com www.123.com
    ErrorLog "logs/abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com  2111.com.cn
   # <Directory /data/wwwroot/111.com> 
   # <FilesMatch 123.php>
   #     AllowOverride AuthConfig
   #     AuthName "111.com user auth"
   #     AuthType Basic
   #     AuthUserFile /data/.htpasswd
   #     require valid-user
   # </FilesMatch>
    #</Directory>
   <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"
    CustomLog "logs/111.com-access_log" combined
</VirtualHost>
  • 更改後的配置文件,在 ErrorLog 下一行插入
[root@hf-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com www.123.com
    ErrorLog "logs/abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com  2111.com.cn
   # <Directory /data/wwwroot/111.com> 
   # <FilesMatch 123.php>
   #     AllowOverride AuthConfig
   #     AuthName "111.com user auth"
   #     AuthType Basic
   #     AuthUserFile /data/.htpasswd
   #     require valid-user
   # </FilesMatch>
    #</Directory>
   <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
</VirtualHost>

並保存退出
  1. 至關於定義了一個環境
  • img 是一個標籤、一個變量,能夠自定義,能夠是任意字符
  • 定義」..gif$」、」..jpg$」、」..png$」、」..bmp$」、」..swf$」、」..js$」、」.*.css$」;這些都是 img
  • env=!img 表示 env非 img 類型的都進行日誌記錄
  1. 在設置好配置文件後,先不加載配置文件,先作一個測驗
[root@hf-01 ~]# curl -x127.0.0.1:80 111.com/asdasdsaf.jpg -I
HTTP/1.1 404 Not Found
Date: Thu, 21 Dec 2017 15:35:14 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1

[root@hf-01 ~]#
  1. 在訪問這樣的請求,無論是404,仍是200都會記錄日誌
[root@hf-01 ~]# !tail
tail -5 /usr/local/apache2.4/logs/111.com-access_log
192.168.202.130 - - [21/Dec/2017:21:51:25 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
192.168.202.1 - - [21/Dec/2017:21:51:32 +0800] "GET /123.php HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
192.168.202.130 - - [21/Dec/2017:21:55:08 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
192.168.202.1 - - [21/Dec/2017:22:04:27 +0800] "GET /123.php HTTP/1.1" 200 7 "http://ask.apelearn.com/question/17687" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
127.0.0.1 - - [21/Dec/2017:23:35:14 +0800] "HEAD HTTP://111.com/asdasdsaf.jpg HTTP/1.1" 404 - "-" "curl/7.29.0"
[root@hf-01 ~]#
  1. 而後在檢查配置文件語法,並從新加載配置文件
[root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@hf-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@hf-01 ~]#
  1. 這時再來curl訪問,會發現日誌中沒有記錄
[root@hf-01 ~]# curl -x127.0.0.1:80 111.com/asdasdsaf.jpg -I
HTTP/1.1 404 Not Found
Date: Thu, 21 Dec 2017 15:39:35 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1

[root@hf-01 ~]# tail -5 /usr/local/apache2.4/logs/111.com-access_log
192.168.202.130 - - [21/Dec/2017:21:51:25 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
192.168.202.1 - - [21/Dec/2017:21:51:32 +0800] "GET /123.php HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
192.168.202.130 - - [21/Dec/2017:21:55:08 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
192.168.202.1 - - [21/Dec/2017:22:04:27 +0800] "GET /123.php HTTP/1.1" 200 7 "http://ask.apelearn.com/question/17687" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
127.0.0.1 - - [21/Dec/2017:23:35:14 +0800] "HEAD HTTP://111.com/asdasdsaf.jpg HTTP/1.1" 404 - "-" "curl/7.29.0"
[root@hf-01 ~]#
  1. 只要是gif、jpg、png、bmp、swf、js的都不會在日誌中有記錄

本地上傳圖片並訪問

  1. 進入到在/data/wwwroot/111.com目錄下
[root@hf-01 ~]# cd /data/wwwroot/111.com
[root@hf-01 111.com]# ls
123.php  index.php
  1. 並上傳一張圖片到該目錄下
[root@hf-01 111.com]# rz

[root@hf-01 111.com]# ls
123.php  index.php  QQ111.jpg
[root@hf-01 111.com]#
  1. 用curl命令查看圖片,會發現圖片是能訪問的
[root@hf-01 111.com]# curl -x127.0.0.1:80 111.com/QQ111.jpg -I
HTTP/1.1 200 OK
Date: Thu, 21 Dec 2017 15:50:24 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Last-Modified: Mon, 04 Dec 2017 03:56:48 GMT
ETag: "da7f-55f7bb520e000"
Accept-Ranges: bytes
Content-Length: 55935
Content-Type: image/jpeg

[root@hf-01 111.com]#
  1. 在瀏覽器訪問網頁圖片,會發現圖片是能訪問的

輸入圖片說明

  1. 查看日誌文件,會發現日誌文件中沒有記錄圖片的日誌,這個就是由於定義了日誌標籤
[root@hf-01 111.com]# tail -5 /usr/local/apache2.4/logs/111.com-access_log
192.168.202.130 - - [21/Dec/2017:21:51:25 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
192.168.202.1 - - [21/Dec/2017:21:51:32 +0800] "GET /123.php HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
192.168.202.130 - - [21/Dec/2017:21:55:08 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
192.168.202.1 - - [21/Dec/2017:22:04:27 +0800] "GET /123.php HTTP/1.1" 200 7 "http://ask.apelearn.com/question/17687" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
127.0.0.1 - - [21/Dec/2017:23:35:14 +0800] "HEAD HTTP://111.com/asdasdsaf.jpg HTTP/1.1" 404 - "-" "curl/7.29.0"
[root@hf-01 111.com]#
  1. 這時去掉虛擬主機配置文件中的env=!img ,在用瀏覽器瀏覽圖片,在curl命令訪問圖片
[root@hf-01 111.com]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

更改後
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com www.123.com
    ErrorLog "logs/abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com  2111.com.cn
   # <Directory /data/wwwroot/111.com> 
   # <FilesMatch 123.php>
   #     AllowOverride AuthConfig
   #     AuthName "111.com user auth"
   #     AuthType Basic
   #     AuthUserFile /data/.htpasswd
   #     require valid-user
   # </FilesMatch>
    #</Directory>
   <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 
</VirtualHost>
  1. 這時再來刷新瀏覽器訪問圖片,用curl訪問圖片
[root@hf-01 111.com]# curl -x127.0.0.1:80 111.com/QQ111.jpg -I
HTTP/1.1 200 OK
Date: Thu, 21 Dec 2017 16:02:57 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Last-Modified: Mon, 04 Dec 2017 03:56:48 GMT
ETag: "da7f-55f7bb520e000"
Accept-Ranges: bytes
Content-Length: 55935
Content-Type: image/jpeg

[root@hf-01 111.com]#
  1. 查看日誌文件,會發現日誌文件有記錄存在
[root@hf-01 111.com]# tail -5 /usr/local/apache2.4/logs/111.com-access_log
192.168.202.130 - - [21/Dec/2017:21:51:25 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
192.168.202.1 - - [21/Dec/2017:21:51:32 +0800] "GET /123.php HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
192.168.202.130 - - [21/Dec/2017:21:55:08 +0800] "HEAD http://111.com/123.php HTTP/1.1" 200 - "-" "curl/7.29.0"
192.168.202.1 - - [21/Dec/2017:22:04:27 +0800] "GET /123.php HTTP/1.1" 200 7 "http://ask.apelearn.com/question/17687" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
127.0.0.1 - - [21/Dec/2017:23:35:14 +0800] "HEAD HTTP://111.com/asdasdsaf.jpg HTTP/1.1" 404 - "-" "curl/7.29.0"
[root@hf-01 111.com]#
  1. 這時在到虛擬主機配置文件中加上env=!img ,並從新加載配置文件,在刷新圖片,會看到日誌文件中並無記錄日誌

日誌文件不記錄總結

  • 如果不去作一個限制,那麼每一次請求都會記錄到日誌文件,日誌文件就會變得愈來愈大,這樣不只會消耗磁盤空間,還會耗費磁盤i/o,並且這些文件毫無心義,因此須要作一個限制
相關文章
相關標籤/搜索