8.3 11.22-11.24

11.22 访问日志不记录静态文件

查看访问网站包含的元素:

一般chrome或火狐浏览器可以查看

用火狐选择如图web开发者:

blob.png

查看后可以发现网页的元素有很多,每一行内容都是一个元素,一般情况下会为以上每一个请求记录访问日志,但很多日志记录是没有必要记录的

网页上大多数元素为静态文件,如cssjs、图片等,这些元素可以不用记录

 

配置:

[root@hyc-01-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

    DocumentRoot "/data/wwwroot/111.com"

    ServerName 111.com

    ServerAlias www.example.com

    <Directory /data/wwwroot/111.com/*>

        AllowOverride AuthConfig

        AuthName "111.com user auth"

        AuthType Basic

        AuthUserFile /data/.htpasswd

        require valid-user

    </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 定义了变量(环境):将以.gif结尾的元素标记为img

    SetEnvIf Request_URI ".*\.jpg$" img 以下包括本行均标记为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除外的日志会被记录到日志文件中

</VirtualHost>

测试:

加载配置前:

[root@hyc-01-01 logs]# curl -x 127.0.0.1:80 111.com/kasjdj.jpg -I

HTTP/1.1 404 Not Found

Date: Sun, 05 Aug 2018 14:30:47 GMT

Server: Apache/2.4.34 (Unix) PHP/7.1.6

Content-Type: text/html; charset=iso-8859-1

[root@hyc-01-01 logs]# tail -1 111.com-access_log

127.0.0.1 - - [05/Aug/2018:22:26:00 +0800] "HEAD HTTP://111.com/kasjdj.jpg HTTP/1.1" 404 - "-" "curl/7.29.0"

关于kasjdj.jpg的访问日志被记录

加载配置后:

[root@hyc-01-01 logs]# curl -x 127.0.0.1:80 111.com/aaaaaaaaaaa.jpg -I

HTTP/1.1 404 Not Found

Date: Sun, 05 Aug 2018 14:32:35 GMT

Server: Apache/2.4.34 (Unix) PHP/7.1.6

Content-Type: text/html; charset=iso-8859-1

[root@hyc-01-01 logs]# tail -1 111.com-access_log

127.0.0.1 - - [05/Aug/2018:22:26:00 +0800] "HEAD HTTP://111.com/kasjdj.jpg HTTP/1.1" 404 - "-" "curl/7.29.0"

关于aaaaaaaaaaa.jpg的访问日志未被记录

[root@hyc-01-01 logs]# tail -1 111.com-access_log

127.0.0.1 - - [05/Aug/2018:22:26:00 +0800] "HEAD HTTP://111.com/kasjdj.jpg HTTP/1.1" 404 - "-" "curl/7.29.0"

[root@hyc-01-01 logs]# curl -x 127.0.0.1:80 111.com/aaaaaaaaaaa.jpg1 -I

HTTP/1.1 404 Not Found

Date: Sun, 05 Aug 2018 14:42:58 GMT

Server: Apache/2.4.34 (Unix) PHP/7.1.6

Content-Type: text/html; charset=iso-8859-1

[root@hyc-01-01 logs]# tail -1 111.com-access_log

127.0.0.1 - - [05/Aug/2018:22:42:58 +0800] "HEAD HTTP://111.com/aaaaaaaaaaa.jpg1 HTTP/1.1" 404 - "-" "curl/7.29.0"

aaaaaaaaaaa.jpg1未匹配配置文件中的以jpg结尾,所以被记录

 

大多数静态文件的日志没有意义,并且记录会消耗磁盘空间和磁盘io,所以需要对这类请求的日志记录做限制


猜你喜欢

转载自blog.51cto.com/12216458/2155059
8.3